{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 实验7：使用AutoEncoder进行图像重构\n",
    "\n",
    "## 一、实验目的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 二、实验内容\n",
    "\n",
    "### 使用MNIST进行图像重构\n",
    "\n",
    "#### 调库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "from torchvision import datasets, transforms\n",
    "from torch.utils.data import DataLoader\n",
    "from torch.optim.lr_scheduler import StepLR\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 定义自编码器模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Autoencoder(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(Autoencoder, self).__init__()\n",
    "        # 编码层\n",
    "        self.encoder = nn.Sequential(\n",
    "            nn.Linear(28 * 28, 128),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(128, 64),\n",
    "            nn.ReLU()\n",
    "        )\n",
    "        # 解码层\n",
    "        self.decoder = nn.Sequential(\n",
    "            nn.Linear(64, 128),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(128, 28 * 28),\n",
    "            nn.Sigmoid()  # 使用Sigmoid函数以确保输出在0到1之间，适合像素值\n",
    "        )\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = self.encoder(x)\n",
    "        x = self.decoder(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 实例化模型，定义损失函数和优化器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "model_MNIST = Autoencoder().to(device) # 转移到GPU上训练\n",
    "criterion_MNIST = nn.MSELoss() # 定义损失函数\n",
    "optimizer_MNIST = optim.Adam(model_MNIST.parameters(), lr=1e-3) # 定义优化器，这里选择Adam"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 构建MNIST训练集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "transform = transforms.Compose([transforms.ToTensor()])\n",
    "train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)\n",
    "train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 训练模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch [1/20], Loss: 0.0202\n",
      "Epoch [2/20], Loss: 0.0151\n",
      "Epoch [3/20], Loss: 0.0122\n",
      "Epoch [4/20], Loss: 0.0103\n",
      "Epoch [5/20], Loss: 0.0091\n",
      "Epoch [6/20], Loss: 0.0086\n",
      "Epoch [7/20], Loss: 0.0080\n",
      "Epoch [8/20], Loss: 0.0072\n",
      "Epoch [9/20], Loss: 0.0071\n",
      "Epoch [10/20], Loss: 0.0072\n",
      "Epoch [11/20], Loss: 0.0052\n",
      "Epoch [12/20], Loss: 0.0049\n",
      "Epoch [13/20], Loss: 0.0044\n",
      "Epoch [14/20], Loss: 0.0057\n",
      "Epoch [15/20], Loss: 0.0045\n",
      "Epoch [16/20], Loss: 0.0050\n",
      "Epoch [17/20], Loss: 0.0046\n",
      "Epoch [18/20], Loss: 0.0052\n",
      "Epoch [19/20], Loss: 0.0042\n",
      "Epoch [20/20], Loss: 0.0044\n"
     ]
    }
   ],
   "source": [
    "num_epochs = 20\n",
    "for epoch in range(num_epochs):\n",
    "    for data in train_loader:\n",
    "        inputs, _ = data\n",
    "        inputs = inputs.view(inputs.size(0), -1).to(device)  # 展平图片\n",
    "\n",
    "        # 前向传播\n",
    "        outputs = model_MNIST(inputs)\n",
    "        loss = criterion_MNIST(outputs, inputs)\n",
    "\n",
    "        # 反向传播和优化\n",
    "        optimizer_MNIST.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer_MNIST.step()\n",
    "\n",
    "    print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 可视化重构"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 可视化重建的图像\n",
    "def visualize_reconstruction(model, images, rows=10):\n",
    "    model.eval()  # 将模型设置为评估模式\n",
    "    images = images.view(images.size(0), -1)  # 展平图片\n",
    "    with torch.no_grad():\n",
    "        reconstructions = model(images)\n",
    "\n",
    "    # 将重建的图像转换回图像格式\n",
    "    reconstructions = reconstructions.view(reconstructions.size(0), 1, 28, 28)\n",
    "    plt.figure(figsize=(15, 5))\n",
    "    \n",
    "    for i in range(rows):\n",
    "        # 显示原图\n",
    "        plt.subplot(2, rows, i+1)\n",
    "        plt.imshow(images[i].reshape(28, 28), cmap='gray')\n",
    "        plt.title(f'Original {i+1}')\n",
    "        plt.axis('off')\n",
    "        \n",
    "        # 显示重建图像\n",
    "        plt.subplot(2, rows, rows+i+1)\n",
    "        plt.imshow(reconstructions[i].reshape(28, 28), cmap='gray')\n",
    "        plt.title(f'Reconstructed {i+1}')\n",
    "        plt.axis('off')\n",
    "    \n",
    "    plt.suptitle('Original Images (Top Row) and Reconstructed Images (Bottom Row)')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIUAAAHHCAYAAAAh5OhtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAByPUlEQVR4nO3dd3hU1fr28XtIL9RQQg29dxAQkI5UGwIioGDDhgXBAooUCyqIeGxYUI8oKiBYUOmIP44goAgCloMCAgoindCSsN4/eDPHMWuFTEhI2d/PdeW65N6z91ozmbVn8rhnHp8xxggAAAAAAACeUiCnJwAAAAAAAIDzj6IQAAAAAACAB1EUAgAAAAAA8CCKQgAAAAAAAB5EUQgAAAAAAMCDKAoBAAAAAAB4EEUhAAAAAAAAD6IoBAAAAAAA4EEUhQAAAAAAADyIohCAbLNq1Sr16dNHpUuXVnh4uOLj49W7d2+tXLkyqOOMHTtWPp8vU3P44osv5PP59MUXX2Rq/4xq166d2rVrl6Hb1a1bN1vnkpd07NhRt9xyiySpYsWK8vl8Z/158803s31e/5xLTEyMGjdurOeff17GmGwfP9WSJUsUGxurXbt2nbcxM6pixYoaPHjwWW/3z99foUKF1LJlS7377rvZP8nz7KuvvtLYsWN18ODBHJvD5s2bNXbsWG3bti3Lj53Rc/HgwYMVGxub5ePnVddff726du3q//e2bdus66JBgwaaMmWKUlJSMjXOjBkzNGXKlDT5sWPHNHbs2Gx/HcyMdu3aBTwOkZGRql27th599FGdOnXqvM3j559/Vnh4uL799tvzNiYA5BYUhQBki+eee06tWrXSzp079dRTT2nx4sWaNGmSdu3apdatW+v555/P8LFuvPHGoAtJqRo3bqyVK1eqcePGmdof2eejjz7Sf/7zH40ePVqSNHfuXK1cudL/c8MNN0iS5s+fH5D36NHjvMyvVatW/jGnT5+u6Oho3XHHHZowYcJ5GV86UzRr1qyZRo0add7GzA6pxeCvvvpKU6dO1eHDh9W/f3/NmDEjp6eWpb766iuNGzcux4tC48aNy5aiEIK3bt06/fvf/9ajjz6aZtsdd9zhP8fMnDlTrVq10rBhw3Tfffdlaqz0ikLjxo3LlUUhSapcubL/cZg1a5aqVaum0aNHa+jQoedtDtWrV9eAAQM0bNiw8zYmAOQWoTk9AQD5z3/+8x/dfffd6t69u+bOnavQ0P+davr166crrrhCd911lxo1aqRWrVo5j3Ps2DFFR0erXLlyKleuXKbmUqhQIbVo0SJT+yJ7Pf7447riiitUtmxZSVKjRo0Cts+fP1+S1KRJExUvXvy8z69IkSIBz51OnTqpQoUKevnll89rkeb222/XVVddpUcffVTly5c/b+NmpVKlSvkfywsvvFCtWrVSxYoV9fLLL6t///45PLucc/z4cUVFReX0NJCNnnjiCTVr1kxNmzZNs61ChQoB55iuXbtq48aNevfdd/X000+fz2nmqKioqIDHoVu3bqpdu7b+/e9/61//+pciIyPPyzyGDh2qpk2b6quvvlLLli3Py5gAkBtwpRCALDdhwgT5fD699NJLAQUhSQoNDdWLL74on8+nJ554wp+nfizh22+/Ve/evVW0aFFVqVIlYNvfnTx5UsOHD1d8fLyio6PVpk0bffPNN2k+0mL7+FjqRxu2bNmi7t27KzY2VuXLl9fw4cN18uTJgHHGjRun5s2bq1ixYipUqJAaN26sadOmZelHiHw+n4YOHao33nhDNWrUUFRUlJo2bapVq1bJGKOJEyeqUqVKio2NVYcOHbRly5aA/RctWqTLLrtM5cqVU2RkpKpWraqbb75Zf/31V5qxPvroI9WvX18RERGqXLmynn32Wevja4zRiy++qIYNGyoqKkpFixZV79699euvvwbcbt26derZs6dKliypiIgIlSlTRj169NDOnTvTvc/r1q3T6tWrdc011wT1WJ04cUIjR45UpUqVFB4errJly+r2229Pc2VGxYoV1bNnT82dO1f169dXZGSkKleurH/9619Bjfd3hQoVUvXq1bVnz56AfP/+/brttttUtmxZhYeHq3LlynrwwQcDnkt9+vRRnTp1Ava75JJL5PP5NGvWLH/27bffyufz6ZNPPgm4XWxsrF599dWzznHt2rXq16+fKlasqKioKFWsWFFXX321tm/fHnC7N998Uz6fT8uWLdOtt96q4sWLKy4uTr169dLvv/8ecNukpCTdd999/rXWunVrrV69+uwPWDoSEhJUokSJNI/l4cOHNWLEiIDf7913363ExMSA250+fVrPPfec//mZWsD7+OOPA27z1FNPqWbNmoqIiFDJkiV17bXXpnlupn6kc82aNbrooosU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tX/88Yd5+OGHjSQzdepU/+0yev5PTEw04eHhZvz48cYYY3bu3Ol/vxAVFeUvHt10002mTJkyaebz6quvGknmhx9+OOvcASC/4ONjAHKE+f8fv/rnx5auvPLKs+67fPlySVLfvn0D8t69e6f5uJqLz+fTJZdcEpDVr18/zUcRli5dqk6dOqlw4cIKCQlRWFiYHn74Ye3bt09//vlnhsbKiPbt2ysmJsb/71q1akk6890Kf3+MUvO/z/PPP//ULbfcovLlyys0NFRhYWFKSEiQJP3www+SpMTERK1du1aXX365wsPD/fvGxsameRzmzZsnn8+ngQMHKjk52f8THx+vBg0a+D8OU7VqVRUtWlT333+/pk6dqs2bN2f4/v7+++8qWbJkhm8vnfldSErT8apPnz6KiYlJ8xGYOnXqqEGDBgFZ//79dfjw4Qx1mPnss88UFhbmfzxfffVVPffccwFfdL106VLFxMSod+/eAfumzjF1TlWqVFHFihW1ePFiSWc+8levXj0NHDhQW7du1S+//KKTJ09qxYoV6tSpU5q5lCxZUqdPn9bu3bvTnfPRo0d1//33q2rVqgoNDVVoaKhiY2OVmJjofy783aWXXhrw7/r160v63/Nr2bJlkqQBAwYE3K5v374ZXmuS9OKLLyosLEzh4eGqXr26Pv/8c7377rtq0qSJ/zbz5s1T3bp11bBhw4DnXZcuXQI+hvX5559LOvNdSy6p8/7nc6VZs2aqVatWmudKfHy8mjVrFpD983zQrFkzrV+/XrfddpsWLFigw4cPZ/j+//2Y1atXD3o/6cx3rC1fvlx9+/b1fxwoGF999ZX279+vQYMGBTy+p0+fVteuXbVmzRolJiYqMTFRa9asUa9evQK+y6VgwYJpzhXBatiwof87xKT/nc/atWun6OjoNPnfH/+MPreXL1+uDh06BHwPWYECBdK8XixYsEDJycm69tprAx6PyMhItW3b1v98K1asmKpUqaKJEydq8uTJWrduXcDHCtPz+++/q0SJEs6ObXfddZfWrFmjNWvWaNmyZXr88cc1c+ZMXX311f7bBPtcDkZiYqK+/vpr9e7dO6BbXEhIiK655hrt3LlTP/30U8A+PXv2DPh36u/qnw0AatWqZf1on82mTZv859rSpUtr/PjxGjlypG6++Wb/bTJ6/o+OjtaFF14YcK4tUqSI7r33Xp06dUorVqyQdOZjlK5zraRc2fERALILRSEAWap48eKKjo7W1q1b073dtm3bFB0drWLFigXkpUuXPusY+/btk3Tmy2v/LjQ0VHFxcRmaZ3R0dJovr4yIiNCJEyf8/169erUuvvhiSdKrr76q//znP1qzZo0efPBBSWe+JDar/PNxSC3cuPLUeZ4+fVoXX3yx5syZo/vuu09LlizR6tWrtWrVqoA5HjhwQMaYNI+ZlPZx3LNnj/+2qW/UU39WrVrl/66iwoULa/ny5WrYsKFGjRqlOnXqqEyZMhozZsxZv0vi+PHjQX956L59+xQaGprmD2Kfz6f4+Hj/8yJVfHx8mmOkZv+8rU3r1q21Zs0arVq1StOnT1fFihU1dOhQ/x8VqceJj49P80dfyZIlFRoaGjBOx44d/X+4LF68WJ07d1a9evVUqlQpLV68WP/5z390/Phx6x8qqY/V2Z5z/fv31/PPP68bb7xRCxYs0OrVq7VmzRqVKFHCuu8/10tERETAOKnz/+djGcxak84UkdasWaOvvvpKL7/8sgoWLKh+/frpv//9r/82e/bs0YYNG9I85woWLChjjP95t3fvXoWEhFh/v6lS5207n5QpUybN7992XyIiIgIes5EjR2rSpElatWqVunXrpri4OHXs2DHNd9+kJyPnN5cDBw4oJSUl01+6n/r9Tb17907zGD/55JMyxmj//v06cOCATp8+ne76yazMnuekjD+39+3bl+HznCRdcMEFaR6P999/3/988/l8WrJkibp06aKnnnpKjRs3VokSJXTnnXfqyJEj6d7fs53nypUrp6ZNm6pp06Zq166dRo4cqdGjR2vWrFlasGCB//5IGX8uByP1dcF17L+PnyqY3+Hff3/pqVKlitasWaPVq1dr1qxZatCggSZMmKD33nvPf5tgzv+dOnXSqlWrlJiYqMWLF6tDhw6Ki4tTkyZNtHjxYm3dulVbt249p3MtAOQndB8DkKVCQkLUvn17zZ8/Xzt37rT+AbNz505988036tatm0JCQgK2uf6P6t+l/gG3Z8+egP/rnJycfE5vkP/pvffeU1hYmObNmxfwxv7DDz/MsjHO1caNG7V+/Xq9+eabGjRokD//55dRFy1aVD6fL80X+0pKc/VJ8eLF5fP59H//93/+IsHf/T2rV6+e3nvvPRljtGHDBr355psaP368oqKi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u3f790tJSTHPPPOMqVu3rv92F154ofnkk08CbvPkk0+a6tWrm7CwMFO8eHEzcOBAs2PHjoA5uFpiDxo0KKCT09NPP21atmxpihcv7l8/N9xwg9m2bVvAfiNHjjRlypQxBQoUCHgs03tOHTp0yNx4442mVKlSJiYmxlxyySVm27Zt1jW8efNm06dPHxMXF+efx+DBgwOeb1OmTDGVKlUyISEhaTqbLV++3PTo0cMUK1bMhIWFmbJly5oePXoEnFOMMebjjz829evXDzhX2M6RNq7uY7b7n9HzX0af28YY83//93+mefPmJiIiwsTHx5t7773X3xHw4MGDAbf98MMPTfv27U2hQoVMRESESUhIML179zaLFy82xhizZ88eM3jwYFOzZk0TExNjYmNjTf369c0zzzwT0CXMJiUlxVSsWDFN5zBb97HIyEhTvXp1c/fdd/u7//39OBl5Lu/fv9/07t3bFClSxPh8voDf1eLFi02jRo1MREREms6B//d//2c6dOjgP9e3aNEiYC0Z4z5nuF67Xa+z/+Raf8YY8+mnnxpJZty4ccaYjJ//jTHm2WefNZLMTTfdFJB37tzZ2dnuyJEjJjo6Ok3nTQDI73zG/P8WQACQx3311Vdq1aqV3nnnHfXv3z+np5MnJCUl+TsCLVy48LyOfccdd2jJkiXatGlTlv/f6IoVK6pu3bppPhqXF40ePVpvvfWWfvnll6A6fgH4n4svvljbtm3Tzz//fF7Hffrpp/XYY49p165dioqKOq9jIzjTpk3TXXfdpR07dnClEABPoSgEIE9atGiRVq5cqSZNmigqKkrr16/XE088ocKFC2vDhg1Bd7byihtuuEGdO3dW6dKltXv3bk2dOlXLly/XwoULrZ1YstOePXtUvXp1TZs2LU1L93OVX4pCBw8eVOXKlfXcc8+laQsPwO6ee+5Ro0aNVL58ee3fv1/vvPOO5syZo2nTpun6668/r3M5ceKEatWqpdtvv10jRow4r2Mj45KTk1W7dm0NGjTI32EUALyC/+UIIE8qVKiQFi5cqClTpujIkSMqXry4unXrpgkTJlAQSseRI0c0YsQI7d27V2FhYWrcuLE+++yz814Qks58we4777yjAwcOnPex84qtW7dq5MiRXPkGBCElJUUPP/ywdu/eLZ/Pp9q1a2v69OkaOHDgeZ9LZGSkpk+frnXr1p33sZFxO3bs0MCBAzV8+PCcngoAnHdcKQQAAAAAAOBBtKQHAAAAAADwIIpCAAAAAAAAHkRRCAAAAAAAwIMoCgEAAAAAAHgQRSEAAAAAAAAPoigEAAAAAADgQRSFAAAAAAAAPIiiEAAAAAAAgAdRFAIAAAAAAPAgikIAAAAAAAAeRFEIAAAAAADAgygKAQAAAAAAeBBFIQAAAAAAAA+iKAQAAAAAAOBBnisKrVq1Sn369FHp0qUVHh6u+Ph49e7dWytXrgzqOGPHjpXP58vUHL744gv5fD598cUXmdo/o9q1a6d27dqd9XYrVqzQjTfeqCZNmigiIkI+n0/btm3L1rkBmcH6DZSSkqLJkyera9euKleunKKjo1WrVi098MADOnjwYLbOD8gM1nBa//rXv9SiRQsVL15cERERqlChgvr166dNmzZl6/yAYLF+02eMUZs2beTz+TR06NDsmRhwDljDaQ0ePFg+ny/NT82aNbN1frmNp4pCzz33nFq1aqWdO3fqqaee0uLFizVp0iTt2rVLrVu31vPPP5/hY914441BL6BUjRs31sqVK9W4ceNM7Z/VlixZosWLF6tChQpq2bJlTk8HsGL9pnX8+HGNHTtWCQkJmjJlij777DPddNNNeuWVV9SqVSsdP348p6cI+LGG7fbt26du3brptdde08KFCzVu3DitW7dOzZs3108//ZTT0wMksX4z4oUXXtCWLVtyehqAFWvYLSoqSitXrgz4ef/993N6WueX8YgVK1aYAgUKmJ49e5qkpKSAbUlJSaZnz56mQIECZsWKFekeJzExMTunmaXatm1r2rZte9bbpaSk+P974sSJRpLZunVr9k0MCBLr1y45Odn89ddfafJZs2YZSWb69OnZNDsgOKzh4GzevNlIMqNHj87aSQGZwPo9u61bt5rY2FgzZ84cI8ncfvvt2Tc5IEisYbdBgwaZmJiY7J9QLueZK4UmTJggn8+nl156SaGhoQHbQkND9eKLL8rn8+mJJ57w56mXxn377bfq3bu3ihYtqipVqgRs+7uTJ09q+PDhio+PV3R0tNq0aaNvvvlGFStW1ODBg/23s102N3jwYMXGxmrLli3q3r27YmNjVb58eQ0fPlwnT54MGGfcuHFq3ry5ihUrpkKFCqlx48aaNm2ajDGZemwKFPDM0wB5FOvXLiQkRHFxcWnyZs2aSZJ27NgR9DGB7MAaDk6JEiX8jw2Q01i/ZzdkyBB17txZV1xxxTkdB8gOrGGcjSfebaSkpGjZsmVq2rSpypUrZ71N+fLl1aRJEy1dulQpKSkKCQnxb+vVq5f69eunW265RYmJic5xrrvuOr3//vu677771KFDB23evFlXXHGFDh8+nKF5JiUl6dJLL9UNN9yg4cOH68svv9QjjzyiwoUL6+GHH/bfbtu2bbr55ptVoUIFSWc+H3rHHXdo165dAbcD8gPWb/CWLl0qSapTp06WHA84F6zhjElJSVFycrK2bt2qBx54QCVLltR1112X6eMBWYH1e3avvfaaVq9erc2bN2dqfyA7sYbP7vjx44qPj9fevXtVunRpXX755Ro/fryKFSuWqePlRZ4oCv311186duyYKlWqlO7tKlWqpNWrV2vfvn0qWbKkPx80aJDGjRuX7r6bN2/Wu+++q/vvv18TJkyQJHXu3FmlSpXS1VdfnaF5njp1SuPGjVOfPn0kSR07dtTatWs1Y8aMgCf5G2+84f/v06dPq127djLG6Nlnn9Xo0aMz/cVfQG7E+g3Orl279MADD6hp06bq2bPnOR0LyAqs4YyJiYnx/x/R6tWr64svvlD58uUzdSwgq7B+07dr1y6NGDFCTz31lMqUKRPUvsD5wBpOX4MGDdSgQQPVrVtXkrR8+XI988wzWrJkidasWaPY2NigjpdX8bmhv0m97OyfT6Yrr7zyrPsuX75cktS3b9+AvHfv3hm+/Nvn8+mSSy4JyOrXr6/t27cHZEuXLlWnTp1UuHBhhYSEKCwsTA8//LD27dunP//8M0NjAfkN61fav3+/unfvLmOM3n//fT4aijzF62v4q6++0sqVK/X222+rYMGCat++PR3IkGd4df3ecsstatCggW666aag9wVyE6+u4WHDhmnYsGHq3LmzOnfurEcffVRvvfWWfvzxR7366qtBHy+v8sRfDMWLF1d0dLS2bt2a7u22bdum6OjoNJeKlS5d+qxj7Nu3T5JUqlSpgDw0NNT6nR820dHRioyMDMgiIiJ04sQJ/79Xr16tiy++WJL06quv6j//+Y/WrFmjBx98UJLoNoR8h/WbMQcOHFDnzp21a9cuLVq0SJUrV870sYCsxBrOmMaNG6tFixYaMGCAli1bJmOMRo0alenjAVmB9es2e/ZszZ8/X0899ZQOHTqkgwcP6uDBg5LOXPVw8OBBJSUlBXVMIKuxhoN3xRVXKCYmRqtWrcqS4+UFnvj4WEhIiNq3b6/58+dr586d1s9T7ty5U9988426desW8DlKKW3F1Cb1Cb9nzx6VLVvWnycnJ/sXSlZ47733FBYWpnnz5gUsnA8//DDLxgByE9bv2R04cECdOnXS1q1btWTJEtWvX/8cZwpkHdZw8AoWLKiaNWvq559/ztLjAsFi/bpt3LhRycnJatGiRZptr776ql599VXNnTtXl19+eSZnDJw71nDmGGM8dcW9Z+7pyJEjZYzRbbfdppSUlIBtKSkpuvXWW2WM0ciRIzN1/DZt2kiS3n///YB89uzZSk5OztykLXw+n0JDQwMW7PHjxzV9+vQsGwPIbVi/bqkFoV9//VULFy5Uo0aNsmKqQJZiDQfnr7/+0vfff6+qVatm6XGBzGD92g0ePFjLli1L8yNJl19+uZYtW6bWrVtnydyBc8EaDs7s2bN17Ngxa8E3v/LElUKS1KpVK02ZMkV33323WrduraFDh6pChQr67bff9MILL+jrr7/WlClT1LJly0wdv06dOrr66qv19NNPKyQkRB06dNCmTZv09NNPq3DhwllWaezRo4cmT56s/v37a8iQIdq3b58mTZqkiIiITB9z7969/s+Cfv/995Kkzz//XCVKlFCJEiXUtm3bLJk7kFmsX7vjx4+rS5cuWrdunaZMmaLk5OSAS11LlCjhbx8K5CTWsN2hQ4fUuXNn9e/fX9WqVVNUVJR+/vlnPfvsszp58qTGjBmTJfMGzgXr165ixYqqWLGidVvZsmXVrl27zE8WyEKsYbvt27erf//+6tevn6pWrSqfz6fly5drypQpqlOnjm688cYsmXde4JmikCTdcccduuCCC/T0009r+PDh2rdvn4oVK6bWrVtrxYoVuvDCC8/p+G+88YZKly6tadOm6ZlnnlHDhg01c+ZMde3aVUWKFMmS+9ChQwe9/vrrevLJJ3XJJZeobNmyuummm1SyZEndcMMNmTrmpk2b/N/0nuq2226TJLVt21ZffPHFuU4bOGes37T27NmjNWvWSJLuuuuuNNsHDRqkN99881ynDWQJ1nBakZGRatCggV555RXt2LFDJ06cUHx8vNq1a6cPPvhAtWvXzpJ5A+eK9QvkbazhtAoVKqRSpUpp8uTJ2rNnj1JSUpSQkKA777xTo0aNUkxMTJbMOy/wmdSvGke2+Oqrr9SqVSu988476t+/f05PB0AQWL9A3sYaBvIu1i+Qt7GG8w6KQllo0aJFWrlypZo0aaKoqCitX79eTzzxhAoXLqwNGzak+UZ1ALkH6xfI21jDQN7F+gXyNtZw3uapj49lt0KFCmnhwoWaMmWKjhw5ouLFi6tbt26aMGECCwHI5Vi/QN7GGgbyLtYvkLexhvM2rhQCAAAAAADwIM+0pAcAAAAAAMD/UBQCAAAAAADwIIpCAAAAAAAAHkRRCAAAAAAAwIMy3H3M5/Nl5zyAbMN3qZ/BGkZexRpm/SLvYv2ewRpGXsUaZv0i78ro+uVKIQAAAAAAAA+iKAQAAAAAAOBBFIUAAAAAAAA8iKIQAAAAAACAB1EUAgAAAAAA8CCKQgAAAAAAAB5EUQgAAAAAAMCDKAoBAAAAAAB4EEUhAAAAAAAAD6IoBAAAAAAA4EEUhQAAAAAAADyIohAAAAAAAIAHURQCAAAAAADwIIpCAAAAAAAAHkRRCAAAAAAAwIMoCgEAAAAAAHgQRSEAAAAAAAAPoigEAAAAAADgQaE5PQEAAAAAuUdCQoI1f+aZZ6z5ZZddZs19Pp9zDGNM8BOzeO+995zbxowZY823bNmSJWMDyP1atGjh3DZkyBBrft1111lz13lr+PDhzjFc583chCuFAAAAAAAAPIiiEAAAAAAAgAdRFAIAAAAAAPAgikIAAAAAAAAeRFEIAAAAAADAg+g+BgAAAMBv7ty51rx+/frWPDOdxLKq+9hVV13l3Na6dWtrPmLECGv+8ccfW/OTJ08GPzEA51WTJk2seb9+/Zz7DBo0yJqfPn3ami9fvtyab9269Syzy924UggAAAAAAMCDKAoBAAAAAAB4EEUhAAAAAAAAD6IoBAAAAAAA4EEUhQAAAAAAADzIZzL41f8+ny+75wJki6zqbpHXsYaRV7GGWb/Iu1i/Z+TGNXzppZc6t33wwQfWfPbs2dZ85syZ1nzFihVBzysyMtKaP/jgg9Y8vc5CBQsWtOau5+WHH35ozQcMGOAcI793JmMN587162Xx8fHW/L///a81j46ODnqMlJQUa96wYUNrvnnz5qDHOB8yun65UggAAAAAAMCDKAoBAAAAAAB4EEUhAAAAAAAAD6IoBAAAAAAA4EEUhQAAAAAAADyI7mPnIDY21pqPGjXKml9++eXWvFatWs4xXL+eLVu2WPPHH3/cms+ZM8c5xuHDh53b8gO6JpyRG9dwyZIlndsuueQSa160aNHsms5ZubqobNu2zbmPq3vB3r17s2JKnsAazp3rF8gI1u8ZuXEN9+nTx7nt3XffteauTl+urmTnQ5UqVZzbRo4cac0HDx4c1BjDhw93bnv22WeDOlZewxrOnevXy1x/B1eqVCnoYyUmJlrz1q1bW/MNGzYEPUZOovsYAAAAAAAAnCgKAQAAAAAAeBBFIQAAAAAAAA+iKAQAAAAAAOBBFIUAAAAAAAA8iKIQAAAAAACAB4Xm9ARyuyZNmji3vfnmm9a8du3aQY0xb94857bk5GRrfumll1rzadOmWfPdu3c7x5g/f346swPO3UsvvWTN02sJGx4eHtQYrnahWdlKNTNjnDx50pr/+9//tuYTJ0605r/++utZZgfkP2FhYc5tkZGRQR3L1VI6vTFOnz4d1BguFSpUCHqfhx9+2Jpv3779XKcDSJIWLFjg3LZw4UJr7moFnZN++eUX57bbb789qGO53pe43ndL+b8lPZBT2rdvb81dfx9nxrZt26x5VFRUlo2RF3ClEAAAAAAAgAdRFAIAAAAAAPAgikIAAAAAAAAeRFEIAAAAAADAgygKAQAAAAAAeJDPZLA1j6vrTn4RExNjzTdt2uTcp3z58tZ8xYoV1vy1116z5u+8885ZZpeWq+vK7Nmzrbnr29slqWHDhtb8p59+CnpeuVFWdp/Ky3JyDf/f//2fNW/VqlXQx9q1a5c137x5szXPyt9/vXr1rHnp0qWzbIw//vjDmnfs2NG5z48//phl4+dGrOG89xrs6uhVvHhxaz5w4EBr3q5dO+cYXbp0CXpeNuk9tjn53HN1OL3xxhvP70TOEev3jLy2hvO7qlWrWvNvv/3Wmrv+TpCktm3bWnPX3wN5DWuY9ZudypQp49y2cuVKa16uXLmgxvj++++d21x/Ix84cCCoMXKrjK5frhQCAAAAAADwIIpCAAAAAAAAHkRRCAAAAAAAwIMoCgEAAAAAAHgQRSEAAAAAAAAPCs3pCZxvrs4nCxcutOauDmOStHr1amt+3333WfOvv/76LLPLuGPHjlnzDz/80Jqn16XloYcesubXXHNN0PMCbB5//HFrHh8f79zns88+s+YnTpyw5ocOHQp+YkEqXLiwNXd1A5Sk2rVrW/PHHnvMmrdo0cKajx492jnGgAEDnNuA7BIeHu7cNm7cOGt+7733BjXGjh07nNu2bNkS1LFcli9f7tzm6nzi6q525513WvNatWo5x3C9nk+aNMm5D4Bz4zp/uLoUNW/e3Hmsq666yprnl+5jQFYIDbWXHYYNG+bcJ9guYy5PPvmkc1t+6TJ2rrhSCAAAAAAAwIMoCgEAAAAAAHgQRSEAAAAAAAAPoigEAAAAAADgQRSFAAAAAAAAPCjfdh+Lioqy5tOmTbPmDRo0sOa//PKLc4x27dpZ85MnT6Y/uWyUmW9Q79q1qzV3dWr766+/gh4D3vb555/n9BSyhKvDWXqdz1zr5auvvrLmru5jlSpVOsvsgPMrve5j33zzjTXv169fUGMsXrzYue3gwYNBHSsrtW7d2pqn12XM5Z577rHmP/74Y9DHAnBuHn30UWv+ySefnOeZAPmLa225XgPT4/pb+7bbbrPmrN+z40ohAAAAAAAAD6IoBAAAAAAA4EEUhQAAAAAAADyIohAAAAAAAIAHURQCAAAAAADwIIpCAAAAAAAAHpRvW9Lfcsst1rxnz57W3NU22tV2VsrZ1vMujRs3DnqfYsWKWfNNmzZZ84YNG1rzP/74I+ixgfxu1KhR1nzYsGFBHeeDDz7IiukAWebo0aPObbNnzz6PMzn/rrvuuqBuf/jwYee21atXn+t0AGSRb775JqenAORpgwcPtua33357lo3xxBNPWPM333wzy8bwGq4UAgAAAAAA8CCKQgAAAAAAAB5EUQgAAAAAAMCDKAoBAAAAAAB4EEUhAAAAAAAAD8rT3cdcXbMk6dZbbw3qWGvXrrXmf/75Z1DHOV9cHcBatGiRZWMkJiZa81OnTmXZGEB+cMUVVzi33X333dbc5/NZ8/3791vzZcuWBT0vAOemWbNm1rxbt27W3NVl7Prrr3eOsWHDhuAnBiBbHD9+3Jr/8ssv53kmQO5WuXJla37XXXdZ8+jo6KDH2Lx5szWfPHly0MdC+rhSCAAAAAAAwIMoCgEAAAAAAHgQRSEAAAAAAAAPoigEAAAAAADgQRSFAAAAAAAAPChPdx9L71vM4+LizuNMzk3jxo2d24YNG2bNO3fubM1LlCgR9PhJSUnW/JFHHrHm+/btC3oMID+47rrrrPkrr7zi3KdAAXvt3dVl7OKLL7bm33777VlmByAzwsLCnNvGjBljzUuWLGnNv/vuO2v+4YcfBjstADmgTJky1rxq1arOfRYuXJhd0wFyVHqvj2+//bY1r1+/flBj7Nmzx7mtZ8+e1vzo0aNBjYGz40ohAAAAAAAAD6IoBAAAAAAA4EEUhQAAAAAAADyIohAAAAAAAIAHURQCAAAAAADwoDzdfWznzp3ObWvXrrXmnTp1suYVKlSw5l26dHGOccMNN1jzOnXqOPexqVixonNbZGRkUMfKjC+//NKav/HGG9k+NpCTQkJCrPmoUaOs+bhx46y5McY5hqtbn6ujAl3GgPMrvdfZ9N4D2Lz88svnOh0AOahfv37WPL3XeSCvq127tjUfOHCgc5/0umfbHDt2zJovXrzYuY+rQ7br7/bRo0db8yuvvPIss0vr2muvtebz5s0L+lh5AVcKAQAAAAAAeBBFIQAAAAAAAA+iKAQAAAAAAOBBFIUAAAAAAAA8iKIQAAAAAACAB1EUAgAAAAAA8KA83ZI+PU899ZQ1r169ujUvW7asNe/fv79zjOTkZGseHR1tzf/8809rvnHjRucYr776qjXv1q2bNb/88sudx3IZNGhQ0PsA+YGr9fzYsWODOs6BAwec21yt51evXh3UGACyx9ChQ4PeZ9asWdZ8+vTp5zodIF9JSEhwbhs8eHC2j+96fX7vvfes+Q033GDNt2/f7hzD9TcHkFe0b9/emt9///1ZNsa9995rzZctW+bcxzX+zTffbM3DwsKCn5hDkyZNrDkt6QEAAAAAAJBvUBQCAAAAAADwIIpCAAAAAAAAHkRRCAAAAAAAwIMoCgEAAAAAAHhQvu0+tmTJEmverFkza164cGFrvmPHDucYJ0+etOYlSpSw5nv37nUeK1gDBw7MsmMB+dn48eOd2x566KGgjuXqFJheB5Vvv/02qDEAZI+WLVta8zFjxgR9rAULFljzEydOBH0sID+47rrrrPnIkSOd+1SuXDm7puPn8/ms+eTJk4M6zvr1653b9u/fH9SxgJxStWpVa/74449n+9itWrWy5o8++qhzn6JFi2bXdM5qw4YNOTZ2TuBKIQAAAAAAAA+iKAQAAAAAAOBBFIUAAAAAAAA8iKIQAAAAAACAB1EUAgAAAAAA8CCfMcZk6IaOb+9H9oqPj7fma9asseZlypSx5vPmzXOOcfnll1vzDD41cr38cj/OVX5fw1dccYU1nzlzpnOfAgXsdfEDBw5Y8/Lly1vz48ePn2V2OcPVtaF58+bW/Morr3Qeq0uXLtZ88+bN1rxr165nmV3GsYbz//o9H1xdkNLruvLXX39Z844dO1pzr3UryQjW7xn5ZQ2XLVvWmq9atcqau96XSufnueF63LNy7F9//dWa9+rVy5q7OpnmVqzhvLd+w8PDrbnr/W1kZGR2TidXmz17tjUfMGCANU9OTs7O6WS5jK5frhQCAAAAAADwIIpCAAAAAAAAHkRRCAAAAAAAwIMoCgEAAAAAAHgQRSEAAAAAAAAPCs3pCSB91113nTVPr5uDzenTp53b6CqA/OC1116z5q4OY+kZNWqUNc9Ml7G4uDhrHhYWZs1btWplzStVquQco0ePHkHtU6FCBWu+fft25xiux+Ttt9927gPkhJiYGGt+8cUXW/OUlBTnse677z5rTpcxeNXkyZOtuet96alTp5zHWrBgQVB5bGysNb///vudY7heg9N7XxysKlWqWPPly5db80cffdSaP/fcc84x8lrHI+Qs13PJq13Gli5d6tw2evRoa+61NceVQgAAAAAAAB5EUQgAAAAAAMCDKAoBAAAAAAB4EEUhAAAAAAAAD6IoBAAAAAAA4EEUhQAAAAAAADyIlvS5nKsNdLDeeOONLDkOkFt988031rxjx45BH+ull16y5ldeeaU1N8Y4j9WiRQtrXrBgQWvu8/mCHsPl119/teZPPfWUNXfdbyn9dvVAbjJixAhrftFFF1nzxMRE57F47QQyxvUatWXLFuc+l19+uTW/9NJLrfk111xjzYsUKeIcw9V6/rXXXrPmc+fOteZTp051jlGuXLmg5jVx4kRr/ueffzrHeOedd5zbgH8qVapUTk8hRyxevNiav/322859fv755+yaTp7ClUIAAAAAAAAeRFEIAAAAAADAgygKAQAAAAAAeBBFIQAAAAAAAA+iKAQAAAAAAOBBPpPBljaujjg4dwkJCc5trq4NBQrY63mrV6+25q5ODpK0d+/edGaX92Wma1N+lN/XcJkyZax57969nfvcdttt1rx69erWPCs7g7m4xnj66aed+6xatcqaz549O0vmlNNYw/l//WalXbt2WXNXN5b0upIMHjw4K6bkaazfM/LLGn7//fetuas7p6v7lyTt37/fmsfFxVlz12N4/Phx5xiurl13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fvlFYWFh/qxz5846deqUXnjhBY0bN07ly5fPwRkiM1jDaeXXNSxJ7777bsC/O3TooIIFC+q2227TihUr1KFDhxyaGTKD9ZtWfl6/qT744AMtWLBAL7zwggYNGpTT08E5YA2nld/XcJEiRdSiRYucnkaAXPmdQqkLY8+ePQH52rVrdemll6pYsWKKjIxUo0aNNHPmzDT779q1S0OGDFH58uUVHh6uMmXKqHfv3gHH++233zRw4ECVLFlSERERqlWrlp5++mmdPn3af5tt27bJ5/Np0qRJmjx5sipVqqTY2FhdeOGFWrVqVcCYv/76q/r166cyZcooIiJCpUqVUseOHfXdd99JOnOp2KZNm7R8+XL/ZWKpH5v64osv5PP5NH36dA0fPlxly5ZVRESEtmzZorFjx8rn86W5j6mXHG7bti0gnzFjhi688ELFxsYqNjZWDRs21LRp0ySdOdF8+umn2r59e8DlaqlOnTqlRx99VDVr1lRERIRKlCih6667Tnv37g0YIykpSffdd5/i4+MVHR2t1q1ba/Xq1bZfpVVqQQj5E+s3/67fokWLBhSEUjVr1kyStHPnzgwdB7kbazj/rmGXEiVKSFK+fQPuJazf/L9+9+/fr9tvv12PPfaYKlSoENS+yP1Yw/l/DedGufLVf+vWrZKk6tWr+7Nly5apa9euat68uaZOnarChQvrvffe01VXXaVjx475L0XbtWuXLrjgAiUlJWnUqFGqX7++9u3bpwULFujAgQMqVaqU9u7dq5YtW+rUqVN65JFHVLFiRc2bN08jRozQL7/8ohdffDFgPi+88IJq1qzp/wzi6NGj1b17d23dulWFCxeWJHXv3l0pKSl66qmnVKFCBf3111/66quvdPDgQUnS3Llz1bt3bxUuXNh//IiIiIBxRo4cqQsvvFBTp05VgQIFVLJkyaAet4cffliPPPKIevXqpeHDh6tw4cLauHGjtm/fLunMZXtDhgzRL7/8orlz5wbse/r0aV122WX6v//7P913331q2bKltm/frjFjxqhdu3Zau3atoqKiJEk33XST3nrrLY0YMUKdO3fWxo0b1atXLx05ciSo+SJ/Yv16b/0uXbpUoaGhAb9z5F2sYW+s4eTkZJ08eVLfffedRo8erdatW6tVq1ZBHQO5D+s3/6/fO++8U5UqVdLQoUP15ZdfBnU/kfuxhvP/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",
      "text/plain": [
       "<Figure size 1500x500 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "images, _ = next(iter(train_loader))\n",
    "visualize_reconstruction(model_MNIST.cpu(), images, rows=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用Fashion MNIST进行重构"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 构建Fashion MNIST数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "transform_Fashion = transforms.Compose([transforms.ToTensor()])\n",
    "train_dataset_Fashion = datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform_Fashion)\n",
    "train_loader_Fashion = DataLoader(train_dataset_Fashion, batch_size=64, shuffle=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 实例化模型，定义损失函数和优化器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "model_Fashion = Autoencoder().to(device) # 转移到GPU上训练\n",
    "criterion_Fashion = nn.MSELoss() # 定义损失函数\n",
    "optimizer_Fashion = optim.AdamW(model_Fashion.parameters(), lr=1e-3, weight_decay= 4e-5) # 这里选择AdamW"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 训练模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch [1/20], Loss: 0.0197\n",
      "Epoch [2/20], Loss: 0.0166\n",
      "Epoch [3/20], Loss: 0.0131\n",
      "Epoch [4/20], Loss: 0.0129\n",
      "Epoch [5/20], Loss: 0.0115\n",
      "Epoch [6/20], Loss: 0.0115\n",
      "Epoch [7/20], Loss: 0.0110\n",
      "Epoch [8/20], Loss: 0.0109\n",
      "Epoch [9/20], Loss: 0.0094\n",
      "Epoch [10/20], Loss: 0.0113\n",
      "Epoch [11/20], Loss: 0.0103\n",
      "Epoch [12/20], Loss: 0.0093\n",
      "Epoch [13/20], Loss: 0.0082\n",
      "Epoch [14/20], Loss: 0.0120\n",
      "Epoch [15/20], Loss: 0.0107\n",
      "Epoch [16/20], Loss: 0.0073\n",
      "Epoch [17/20], Loss: 0.0092\n",
      "Epoch [18/20], Loss: 0.0071\n",
      "Epoch [19/20], Loss: 0.0115\n",
      "Epoch [20/20], Loss: 0.0100\n"
     ]
    }
   ],
   "source": [
    "num_epochs = 20\n",
    "for epoch in range(num_epochs):\n",
    "    for data in train_loader_Fashion:\n",
    "        inputs, _ = data\n",
    "        inputs = inputs.view(inputs.size(0), -1).to(device)  # 展平图片\n",
    "        # 前向传播\n",
    "        outputs = model_Fashion(inputs)\n",
    "        loss = criterion_Fashion(outputs, inputs)\n",
    "        # 反向传播和优化\n",
    "        optimizer_Fashion.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer_Fashion.step()\n",
    "\n",
    "    print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 可视化重构"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIUAAAHHCAYAAAAh5OhtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACPsElEQVR4nO3dd3hVVfr28TskIZ0AKYSa0HtvCg4dEcQ6yIgNHMtY0NHB7qBi+dkQUUcHR1EHuyg2bBQRRUFAUUSwUqT3XgOs9w/eZIxZzzYnhhL293NdXNf4nHP22vucvdbaZ83JvqOcc04AAAAAAAAIlTKHewcAAAAAAABw6LEoBAAAAAAAEEIsCgEAAAAAAIQQi0IAAAAAAAAhxKIQAAAAAABACLEoBAAAAAAAEEIsCgEAAAAAAIQQi0IAAAAAAAAhxKIQAAAAAABACLEoBOCgmTFjhs444wxVrlxZZcuWVVZWlvr166fp06dHtJ3bbrtNUVFRxdqHjz76SFFRUfroo4+K9fqi6tKli7p06VKk5zVp0uSg7ktp0r17d11yySWSpJycHEVFRf3uv2eeeeag79dv9yUpKUmtWrXSv/71LznnDnr7eSZPnqzk5GQtX778kLVZVDk5ORo0aNDvPu+3n1+5cuXUoUMHvfjiiwd/Jw+xzz77TLfddps2bdp02PZh/vz5uu2227R48eIS33ZRx+JBgwYpOTm5xNsvrf7617/qhBNOyP/vxYsXe/tF8+bNNXLkSO3bt69Y7bzwwgsaOXJkofqOHTt02223HfR5sDi6dOlS4H2Ij49Xo0aNdOedd2rPnj2HbD9++OEHlS1bVl9++eUhaxMAjhQsCgE4KB555BF17NhRy5Yt03333adJkyZp+PDhWr58uY477jj961//KvK2LrzwwogXkvK0atVK06dPV6tWrYr1ehw8b775pj799FMNHTpUkvT6669r+vTp+f8uuOACSdL7779foH7iiScekv3r2LFjfpvPPvusEhMTdcUVV+juu+8+JO1LBxbN2rVrp5tuuumQtXkw5C0Gf/bZZxo1apS2bNmis846Sy+88MLh3rUS9dlnn2nYsGGHfVFo2LBhB2VRCJGbM2eO/vvf/+rOO+8s9NgVV1yRP8a88sor6tixo66++mpdd911xWoraFFo2LBhR+SikCTVqlUr/30YO3as6tatq6FDh2rw4MGHbB/q1auns88+W1dfffUhaxMAjhQxh3sHABx9Pv30U1111VXq06ePXn/9dcXE/G+oOfPMM3Xaaafp73//u1q2bKmOHTua29mxY4cSExNVrVo1VatWrVj7Uq5cOR1zzDHFei0Orv/7v//TaaedpqpVq0qSWrZsWeDx999/X5LUunVrpaenH/L9K1++fIFzp0ePHqpRo4Yef/zxQ7pIc/nll+svf/mL7rzzTlWvXv2QtVuSKlWqlP9eHnvsserYsaNycnL0+OOP66yzzjrMe3f47Ny5UwkJCYd7N3AQ3XPPPWrXrp3atGlT6LEaNWoUGGNOOOEEzZs3Ty+++KIeeOCBQ7mbh1VCQkKB96F3795q1KiR/vvf/+rhhx9WfHz8IdmPwYMHq02bNvrss8/UoUOHQ9ImABwJ+KUQgBJ39913KyoqSv/+978LLAhJUkxMjB577DFFRUXpnnvuya/n/VnCl19+qX79+qlChQqqXbt2gcd+bffu3RoyZIiysrKUmJioTp066Ysvvij0Jy2+Px/L+9OGn376SX369FFycrKqV6+uIUOGaPfu3QXaGTZsmNq3b6+KFSuqXLlyatWqlUaPHl2if0IUFRWlwYMH6+mnn1b9+vWVkJCgNm3aaMaMGXLO6f7771fNmjWVnJysbt266aeffirw+okTJ+qUU05RtWrVFB8frzp16uhvf/ub1q1bV6itN998U82aNVNcXJxq1aqlhx56yPv+Ouf02GOPqUWLFkpISFCFChXUr18/LVy4sMDz5syZo759+yozM1NxcXGqUqWKTjzxRC1btizwmOfMmaOZM2fq3HPPjei92rVrl2688UbVrFlTZcuWVdWqVXX55ZcX+mVGTk6O+vbtq9dff13NmjVTfHy8atWqpYcffjii9n6tXLlyqlevnlavXl2gvmHDBl122WWqWrWqypYtq1q1aunmm28ucC6dccYZaty4cYHXnXTSSYqKitLYsWPza19++aWioqL09ttvF3hecnKynnjiid/dx9mzZ+vMM89UTk6OEhISlJOTowEDBmjJkiUFnvfMM88oKipKU6ZM0aWXXqr09HSlpaXp9NNP14oVKwo8Nzc3V9ddd11+XzvuuOM0c+bM33/DAmRnZysjI6PQe7llyxZdc801BT7fq666Stu3by/wvP379+uRRx7JPz/zFvDeeuutAs+577771KBBA8XFxSkzM1PnnXdeoXMz7086Z82apT/96U9KTExUrVq1dM8992j//v0FtnfnnXfm99Hy5curWbNmeuihhyQdGKeuvfZaSVLNmjXz/xwmb+zJOyfHjRunli1bKj4+Pv8XPdafRUZFRem2224rUPvuu+80YMAAVapUSXFxcapRo4bOO+887d69W88884zOOOMMSVLXrl29f3I5adIkde/eXeXKlVNiYqI6duyoyZMnF2r7nXfeUYsWLRQXF6eaNWtq+PDhnk+y6PKOf/z48WrZsqUSEhLUsGFDjR8/XtKBc7Jhw4ZKSkpSu3btNHv27AKvL+q5LUnTpk3Tscceq/j4eFWtWlVDhw7Vk08+qaioqEK/oHr55Zd17LHHKikpScnJyerVq5fmzJlT4DkLFy7UmWeeqSpVqiguLk6VKlVS9+7d9dVXXwUe8+rVq/X6669HNM6lpqYqNja2QK0o53KXLl30zjvvaMmSJQX+HGvx4sXKyMiQdGA+y6v/ep6cNm2aunfvrpSUFCUmJqpDhw565513CuxD3pjx4Ycf6qKLLlJaWprKlSun8847T9u3b9eqVavUv39/lS9fXpUrV9Y111yj3NzcIh/3r8XExKhFixbas2dPgbG9KOP/tddeq9TU1AJ/gnfFFVcoKipK999/f35t/fr1KlOmjB555JH8WuvWrdWwYUONGjWqWPsNAKWWA4AStHfvXpeYmOjat28f+Lx27dq5xMREt3fvXuecc7feequT5LKzs93111/vJk6c6N54440Cj/3agAEDXJkyZdwNN9zgJkyY4EaOHOmqV6/uUlNT3cCBA/OfN2XKFCfJTZkyJb82cOBAV7ZsWdewYUM3fPhwN2nSJHfLLbe4qKgoN2zYsALtDBo0yI0ePdpNnDjRTZw40d1xxx0uISGh0PM6d+7sOnfu/LvvT+fOnV3jxo0L1PKOu0OHDm7cuHHu9ddfd/Xq1XMVK1Z0V199tTvllFPc+PHj3fPPP+8qVarkmjVr5vbv35//+n//+9/u7rvvdm+99ZabOnWq++9//+uaN2/u6tev7/bs2ZP/vPfee8+VKVPGdenSxb3++utu7Nixrn379i4nJ6fQ+3vRRRe52NhYN2TIEPf++++7F154wTVo0MBVqlTJrVq1yjnn3LZt21xaWppr06aNe+WVV9zUqVPdyy+/7C655BI3f/78wPfh9ttvd9HR0W7r1q3mc/I+97Vr1zrnnNu/f7/r1auXi4mJcUOHDnUTJkxww4cPd0lJSa5ly5Zu165d+a/Nzs52VatWdTVq1HBPPfWUe/fdd93ZZ5/tJLn777//dz6lA68/8cQTC9Ryc3NdVlaWa9q0aX5t586drlmzZi4pKckNHz7cTZgwwQ0dOtTFxMS4Pn365D9v1KhRTpJbsWJF/rZSUlJcQkKCu+iii/Kfd++997qYmBi3ZcuWAm337t3btWrV6nf3e+zYse6WW25xr7/+ups6dap76aWXXOfOnV1GRkb+++icc08//bST5GrVquWuuOIK98EHH7gnn3zSVahQwXXt2rXANgcOHOiioqLctdde6yZMmOBGjBjhqlat6sqVK1egr1kkucsvv7xAbdOmTS46OtqddNJJ+bXt27e7Fi1auPT0dDdixAg3adIk99BDD7nU1FTXrVu3Auf8ueee66KiotyFF17o3nzzTffee++5u+66yz300EP5z7n44oudJDd48GD3/vvvu1GjRrmMjAxXvXr1Au9F586dXVpamqtbt64bNWqUmzhxorvsssucJPff//43/3l33323i46OdrfeequbPHmye//9993IkSPdbbfd5pxzbunSpe6KK65wkty4cePc9OnT3fTp093mzZudcwfOqcqVK7tatWq5p556yk2ZMsXNnDnTLVq0yElyTz/9tPe9u/XWW/P/+6uvvnLJyckuJyfHjRo1yk2ePNk999xzrn///m7Lli1uzZo17v/+7/+cJPfoo4/m78OaNWucc849++yzLioqyp166qlu3Lhx7u2333Z9+/Z10dHRbtKkSfntTJo0yUVHR7vjjjvOjRs3zo0dO9a1bdvW1ahRo9BY4TNw4ECXlJRUoJadne2qVavmmjRp4l588UX37rvvuvbt27vY2Fh3yy23uI4dOxYY/ypVquR27NiR//qinttff/21i4+Pd82aNXMvvfSSe+utt1yfPn3yx7lFixblP/euu+5yUVFR7q9//asbP368GzdunDv22GNdUlKS+/bbb/OfV79+fVenTh337LPPuqlTp7rXXnvNDRkypMC84jNmzBgnqdB4mPeZ33vvvS43N9fl5ua6devWudGjR7uYmBh38803F3h+Uc7lb7/91nXs2NFlZWXlf+7Tp093u3btcu+//76T5C644IL8+k8//eScc+6jjz5ysbGxrnXr1u7ll192b7zxhjv++ONdVFSUe+mll/L3IW/MqFmzphsyZIibMGGCu/fee110dLQbMGCAa9WqlbvzzjvdxIkT3fXXX+8kuQceeCDw/XHOPyc651ybNm1c+fLl868Rijr+5x3rZ599lr+tBg0auISEBNezZ8/82ssvv+z9bC699FKXnp5eYLwBgKMdi0IAStSqVaucJHfmmWcGPu8vf/mLk+RWr17tnPvfAsAtt9xS6Lm/XRT69ttvnSR3/fXXF3jeiy++6CQVaVFIknvllVcKvL5Pnz6ufv365j7v27fP5ebmuttvv92lpaUVuGj8o4tCWVlZbtu2bfm1N954w0lyLVq0KNDOyJEjnSQ3d+5c7/b379/vcnNz3ZIlS5wk9+abb+Y/1rZtW1e9enW3e/fu/NrWrVtdWlpagfd3+vTp3gv6pUuXuoSEBHfdddc555ybPXu2k5S/eBeJ3r17uwYNGgQ+57eLQnkX+/fdd1+B5+Vd3P/nP//Jr2VnZ7uoqCj31VdfFXhuz549Xbly5dz27dsD287OznZ9+vTJ/8K2ZMmS/IWy8ePH5z8vb7Hnt+fSvffe6yS5CRMmOOec++mnn5wkN2bMGOecc9OmTXOS3HXXXedq1qxZYP86dOhQaH9uvvlmV6ZMmQLnSFHs3bvXbdu2zSUlJRVYMMn7gnfZZZcVeP59993nJLmVK1c655xbsGCBk+SuvvrqAs97/vnnC/U1S147ubm5bs+ePe6HH35wJ598sktJSXGzZ8/Of97dd9/typQp42bNmlXg9a+++qqT5N59913nnHMff/yxk1Toi/Ov5e33b4/v888/d5LcTTfdlF/r3Lmzk+Q+//zzAs9t1KiR69WrV/5/9+3b17Vo0SLwWO+///5CCw95srOzXXR0tPv+++8L1CNZFOrWrZsrX758/iKPz9ixYwuNec4dWHSrWLFigYU45w6Ma82bN3ft2rXLr7Vv395VqVLF7dy5M7+2ZcsWV7FixT+0KJSQkOCWLVuWX/vqq6+cJFe5cuUCfTJv/HvrrbfMNqxz+4wzznBJSUkFFor27dvnGjVqVOCz+eWXX1xMTIy74oorCmx369atLisry/Xv398559y6deucJDdy5MjfPe7fuvTSS11CQkKhBYa8z9z3b9CgQfkLIc5Fdi6feOKJLjs7u9B+rF27ttC5lOeYY45xmZmZBRbo9+7d65o0aeKqVauWv+95Y8Zv369TTz3VSXIjRowoUG/RokWRFrLz5sS8sXblypXulltucZLcqFGj8p9X1PF/+/btrmzZsu722293zjm3bNmy/OuFhISE/MWjiy66yFWpUqXQ/jzxxBNOkluwYMHv7jsAHC348zEAh4X7/39+9ds/W/rzn//8u6+dOnWqJKl///4F6v369Sv052qWqKgonXTSSQVqzZo1K/SnCB9++KF69Oih1NRURUdHKzY2VrfccovWr1+vNWvWFKmtoujatauSkpLy/7thw4aSDtxb4dfvUV791/u5Zs0aXXLJJapevbpiYmIUGxur7OxsSdKCBQskSdu3b9fs2bN16qmnqmzZsvmvTU5OLvQ+jB8/XlFRUTrnnHO0d+/e/H9ZWVlq3rx5/p/D1KlTRxUqVND111+vUaNGaf78+UU+3hUrVigzM7PIz5cOfBaSCiVenXHGGUpKSir0JzCNGzdW8+bNC9TOOussbdmypUgJM++++65iY2Pz388nnnhCjzzySIEbXX/44YdKSkpSv379Crw2bx/z9ql27drKycnRpEmTJB34k7+mTZvqnHPO0aJFi/Tzzz9r9+7dmjZtmnr06FFoXzIzM7V//36tWrUqcJ+3bdum66+/XnXq1FFMTIxiYmKUnJys7du3558Lv3byyScX+O9mzZpJ+t/5NWXKFEnS2WefXeB5/fv3L3Jfk6THHntMsbGxKlu2rOrVq6f33ntPL774olq3bp3/nPHjx6tJkyZq0aJFgfOuV69eBf4M67333pN04F5Llrz9/u250q5dOzVs2LDQuZKVlaV27doVqP12PGjXrp2+/vprXXbZZfrggw+0ZcuWIh//r7dZr169iF8nHbjH2tSpU9W/f//8PweKxGeffaYNGzZo4MCBBd7f/fv364QTTtCsWbO0fft2bd++XbNmzdLpp59e4F4uKSkphcaKSLVo0SL/HmLS/8azLl26KDExsVD91+9/Uc/tqVOnqlu3bgXuQ1amTJlC88UHH3ygvXv36rzzzivwfsTHx6tz587551vFihVVu3Zt3X///RoxYoTmzJlT4M8Kg6xYsUIZGRlmYtvf//53zZo1S7NmzdKUKVP0f//3f3rllVc0YMCA/OdEei5HYvv27fr888/Vr1+/Amlx0dHROvfcc7Vs2TJ9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I+nAn1RK0r///W9z+926dZNU+FyZNWuWFixY4P0yGIny5curX79+uvzyy7Vhw4b8RKvf/tKqKCpVqqT4+HjNnTu3QP3NN98s8N8JCQnq3Lmzxo4d600WzGPtQ8eOHVW+fHnNnz/f+/62adNGZcuWzU//GjduXIFfemzdurVAKt6hFMm53blzZ3344YcF3qP9+/cXSPmTpF69eikmJkY///yz+X741KtXT//85z/VtGnTIo1z69ev1+bNm4t8rHmJZnl/xhTJufzbX7f9ui4VPieSkpLUvn17jRs3rsBj+/fv13PPPadq1aoV+88d/4i0tDTdc889Wr16dX46WCTjf7t27VSuXDmNHDlSq1atUs+ePSUdGGvnzJmjV155RY0aNcr/NdSvLVy4UGXKlFH9+vUP1uEBwBGHXwoBKHEdO3bUyJEjddVVV+m4447T4MGDVaNGDf3yyy969NFH9fnnn2vkyJHq0KFDsbbfuHFjDRgwQA888ICio6PVrVs3ffvtt3rggQeUmpqqMmVKZr37xBNP1IgRI3TWWWfp4osv1vr16zV8+HDvr2cOlwYNGqh27dq64YYb5JxTxYoV9fbbb2vixImFnnv77bfrxBNPVK9evfT3v/9d+/bt0/3336/k5OQC/297x44ddfHFF+v888/X7Nmz1alTJyUlJWnlypWaNm2amjZtqksvvVTjx4/XY489plNPPVW1atWSc07jxo3Tpk2b8i/CLV26dNFTTz2lH374ochfOnr27KlevXrp+uuv15YtW9SxY0fNnTtXt956q1q2bFko9rlKlSo6+eSTddttt6ly5cp67rnnNHHiRN17771F+lWHzzXXXKNRo0Zp2LBh6t+/v8477zw9+uijGjhwoBYvXqymTZtq2rRp+r//+z/16dOnwJ8nZGZmqkmTJpowYYK6du2avw89evTQhg0btGHDBo0YMcLb7owZM9S5c+fAX9KVK1dOnTp10v3336/09HTl5ORo6tSpGj16tMqXL1+s423YsKHOOeccjRw5UrGxserRo4fmzZun4cOHq1y5csXaZp477rhDL7/8soYOHapJkybpqquu0muvvaZOnTrp6quvVrNmzbR//3798ssvmjBhgoYMGaL27dvrT3/6k84991zdeeedWr16tfr27au4uDjNmTNHiYmJuuKKK1S/fn1dfPHFeuSRR1SmTBn17t1bixcv1tChQ1W9enVdffXVEe/vSSedpCZNmqhNmzbKyMjQkiVLNHLkSGVnZ6tu3bqSlL9g+tBDD2ngwIGKjY1V/fr1lZKSYm437/5dTz31lGrXrq3mzZtr5syZeuGFFwo9d8SIETruuOPUvn173XDDDapTp45Wr16tt956K//P8po0aSJJ+s9//qOUlBTFx8erZs2aSktL0yOPPKKBAwdqw4YN6tevnzIzM7V27Vp9/fXXWrt2bf5C2x133KETTjhBPXv21JAhQ7Rv3z7de++9SkpKKvavzv6ISM7tm2++WW+//ba6d++um2++WQkJCRo1apS2b98uSfnzQ05Ojm6//XbdfPPNWrhwoU444QRVqFBBq1ev1syZM5WUlKRhw4Zp7ty5Gjx4sM444wzVrVtXZcuW1Ycffqi5c+cG/hpSOjDOOef0+eef5/8p8q/98ssv+X/qu337dk2fPl133323srOzdfrpp0tSROdy06ZNNW7cOP373/9W69atVaZMGbVp00YpKSnKzs7Wm2++qe7du6tixYr57+Pdd9+tnj17qmvXrrrmmmtUtmxZPfbYY5o3b55efPHFIv1692A477zzNGLECA0fPlyXX355RON/dHS0OnfurLfffls1a9ZU7dq1JR2Y2+Li4jR58mRdeeWV3nZnzJihFi1aqEKFCofkOAHgiHCo72wNIDymT5/u+vXr5ypVquRiYmJcZmamO/300wtExeb5bdKU77Ff27Vrl/vHP/7hMjMzXXx8vDvmmGPc9OnTXWpqaoGkJCt97LfJOFY7Tz31lKtfv76Li4tztWrVcnfffbcbPXp0oYShP5o+9tvI7rx0mt/Gp+cdz9ixY/Nr8+fPdz179nQpKSmuQoUK7owzznC//PKLN23m9ddfd02bNnVly5Z1NWrUcPfcc4+78sorXYUKFQrt61NPPeXat2/vkpKSXEJCgqtdu7Y777zz8hOjvvvuOzdgwABXu3Ztl5CQ4FJTU127du3cM88887vvw+bNm11ycnKhJJlf850TO3fudNdff73Lzs52sbGxrnLlyu7SSy91GzduLPDavEj5V1991TVu3NiVLVvW5eTkFErIsfgi6fM8+uijBeLK169f7y655BJXuXJlFxMT47Kzs92NN96Yn3Lza1dffbWT5O66664C9bp165qpcnnJZa+99trv7veyZcvcn//8Z1ehQgWXkpLiTjjhBDdv3jyXnZ1dICksL0not0lfvv6ye/duN2TIkEJ97bfbtPjO7zzXXnutk+SmTp3qnHNu27Zt7p///KerX7++K1u2rEtNTXVNmzZ1V199tVu1alX+6/bt2+cefPBB16RJk/znHXvsse7tt98u8Jx7773X1atXz8XGxrr09HR3zjnnuKVLlxbYBysSe+DAgQWSnB544AHXoUMHl56ent9/LrjgArd48eICr7vxxhtdlSpVXJkyZQq8l0Hn1ObNm92FF17oKlWq5JKSktxJJ53kFi9e7O3D8+fPd2eccYZLS0vL349BgwYVON9Gjhzpatas6aKjowslm02dOtWdeOKJrmLFii42NtZVrVrVnXjiiQXGFOece+utt1yzZs0KjBW+MdLHSh/zHX9Rx7+intvOOffJJ5+49u3bu7i4OJeVleWuvfba/ETATZs2FXjuG2+84bp27erKlSvn4uLiXHZ2tuvXr5+bNGmSc8651atXu0GDBrkGDRq4pKQkl5yc7Jo1a+YefPDBAilhPvv27XM5OTmFksN86WPx8fGuXr167qqrrspP//v1dopyLm/YsMH169fPlS9f3kVFRRX4rCZNmuRatmzp4uLiCiUHfvLJJ65bt275Y/0xxxxToC85Z48Z1txtzbO/ZfU/55x75513nCQ3bNgw51zRx3/nnHvooYecJHfRRRcVqPfs2dNMttu6datLTEwslLwJAEe7KOf+fwQQAJRyn332mTp27Kjnn39eZ5111uHenVIhNzc3PxFowoQJh7TtK664QpMnT9a3335b4v9vdE5Ojpo0aVLoT+NKo6FDh2rMmDH6+eefI0r8AvA/xx9/vBYvXqwffvjhkLb7wAMP6K677tLy5cuVkJBwSNtGZEaPHq2///3vWrp0Kb8UAhAqLAoBKJUmTpyo6dOnq3Xr1kpISNDXX3+te+65R6mpqZo7d27EyVZhccEFF6hnz56qXLmyVq1apVGjRmnq1KmaMGGCN4nlYFq9erXq1aun0aNHF4p0/6OOlkWhTZs2qVatWnrkkUcKxcID8PvHP/6hli1bqnr16tqwYYOef/55jRs3TqNHj9Zf//rXQ7ovu3btUsOGDXX55ZfrmmuuOaRto+j27t2rRo0aaeDAgfkJowAQFvxfjgBKpXLlymnChAkaOXKktm7dqvT0dPXu3Vt33303C0IBtm7dqmuuuUZr165VbGysWrVqpXffffeQLwhJB26w+/zzz2vjxo2HvO3SYtGiRbrxxhv55RsQgX379umWW27RqlWrFBUVpUaNGunZZ5/VOeecc8j3JT4+Xs8++6zmzJlzyNtG0S1dulTnnHOOhgwZcrh3BQAOOX4pBAAAAAAAEEJE0gMAAAAAAIQQi0IAAAAAAAAhxKIQAAAAAABACLEoBAAAAAAAEEIsCgEAAAAAAIQQi0IAAAAAAAAhxKIQAAAAAABACLEoBAAAAAAAEEIsCgEAAAAAAIQQi0IAAAAAAAAhxKIQAAAAAABACLEoBAAAAAAAEEIsCgEAAAAAAIQQi0IAAAAAAAAhFLpFoRkzZuiMM85Q5cqVVbZsWWVlZalfv36aPn16RNu57bbbFBUVVax9+OijjxQVFaWPPvqoWK8vqi5duqhLly6/+7xp06bpwgsvVOvWrRUXF6eoqCgtXrz4oO4bUBz034L27dunESNG6IQTTlC1atWUmJiohg0b6oYbbtCmTZsO6v4BxUEfLuzhhx/WMccco/T0dMXFxalGjRo688wz9e233x7U/QMiRf8N5pxTp06dFBUVpcGDBx+cHQP+APpwYYMGDVJUVFShfw0aNDio+3ekCdWi0COPPKKOHTtq2bJluu+++zRp0iQNHz5cy5cv13HHHad//etfRd7WhRdeGHEHytOqVStNnz5drVq1KtbrS9rkyZM1adIk1ahRQx06dDjcuwN40X8L27lzp2677TZlZ2dr5MiRevfdd3XRRRfpP//5jzp27KidO3ce7l0E8tGH/davX6/evXvrySef1IQJEzRs2DDNmTNH7du31/fff3+4dw+QRP8tikcffVQ//fTT4d4NwIs+bEtISND06dML/Hv55ZcP924dWi4kpk2b5sqUKeP69u3rcnNzCzyWm5vr+vbt68qUKeOmTZsWuJ3t27cfzN0sUZ07d3adO3f+3eft27cv/3/ff//9TpJbtGjRwdsxIEL0X7+9e/e6devWFaqPHTvWSXLPPvvsQdo7IDL04cjMnz/fSXJDhw4t2Z0CioH++/sWLVrkkpOT3bhx45wkd/nllx+8nQMiRB+2DRw40CUlJR38HTrCheaXQnfffbeioqL073//WzExMQUei4mJ0WOPPaaoqCjdc889+fW8n8Z9+eWX6tevnypUqKDatWsXeOzXdu/erSFDhigrK0uJiYnq1KmTvvjiC+Xk5GjQoEH5z/P9bG7QoEFKTk7WTz/9pD59+ig5OVnVq1fXkCFDtHv37gLtDBs2TO3bt1fFihVVrlw5tWrVSqNHj5ZzrljvTZkyoTkNUErRf/2io6OVlpZWqN6uXTtJ0tKlSyPeJnAw0Icjk5GRkf/eAIcb/ff3XXzxxerZs6dOO+20P7Qd4GCgD+P3hOJqY9++fZoyZYratGmjatWqeZ9TvXp1tW7dWh9++KH27dun6Ojo/MdOP/10nXnmmbrkkku0fft2s53zzz9fL7/8sq677jp169ZN8+fP12mnnaYtW7YUaT9zc3N18skn64ILLtCQIUP08ccf64477lBqaqpuueWW/OctXrxYf/vb31SjRg1JB/4+9IorrtDy5csLPA84GtB/I/fhhx9Kkho3blwi2wP+CPpw0ezbt0979+7VokWLdMMNNygzM1Pnn39+sbcHlAT67+978sknNXPmTM2fP79YrwcOJvrw79u5c6eysrK0du1aVa5cWaeeeqpuv/12VaxYsVjbK41CsSi0bt067dixQzVr1gx8Xs2aNTVz5kytX79emZmZ+fWBAwdq2LBhga+dP3++XnzxRV1//fW6++67JUk9e/ZUpUqVNGDAgCLt5549ezRs2DCdccYZkqTu3btr9uzZeuGFFwqc5E8//XT+/96/f7+6dOki55weeughDR06tNg3/gKORPTfyCxfvlw33HCD2rRpo759+/6hbQElgT5cNElJSfn/j2i9evX00UcfqXr16sXaFlBS6L/Bli9frmuuuUb33XefqlSpEtFrgUOBPhysefPmat68uZo0aSJJmjp1qh588EFNnjxZs2bNUnJyckTbK634u6FfyfvZ2W9Ppj//+c+/+9qpU6dKkvr371+g3q9fvyL//DsqKkonnXRSgVqzZs20ZMmSArUPP/xQPXr0UGpqqqKjoxUbG6tbbrlF69ev15o1a4rUFnC0of9KGzZsUJ8+feSc08svv8yfhqJUCXsf/uyzzzR9+nQ999xzSklJUdeuXUkgQ6kR1v57ySWXqHnz5rrooosifi1wJAlrH7766qt19dVXq2fPnurZs6fuvPNOjRkzRt99952eeOKJiLdXWoXiG0N6eroSExO1aNGiwOctXrxYiYmJhX4qVrly5d9tY/369ZKkSpUqFajHxMR47/nhk5iYqPj4+AK1uLg47dq1K/+/Z86cqeOPP16S9MQTT+jTTz/VrFmzdPPNN0sSaUM46tB/i2bjxo3q2bOnli9frokTJ6pWrVrF3hZQkujDRdOqVSsdc8wxOvvsszVlyhQ553TTTTcVe3tASaD/2l599VW9//77uu+++7R582Zt2rRJmzZtknTgVw+bNm1Sbm5uRNsEShp9OHKnnXaakpKSNGPGjBLZXmkQij8fi46OVteuXfX+++9r2bJl3r+nXLZsmb744gv17t27wN9RSoVXTH3yTvjVq1eratWq+fW9e/fmd5SS8NJLLyk2Nlbjx48v0HHeeOONEmsDOJLQf3/fxo0b1aNHDy1atEiTJ09Ws2bN/uCeAiWHPhy5lJQUNWjQQD/88EOJbheIFP3XNm/ePO3du1fHHHNMoceeeOIJPfHEE3r99dd16qmnFnOPgT+OPlw8zrlQ/eI+NEd64403yjmnyy67TPv27Svw2L59+3TppZfKOacbb7yxWNvv1KmTJOnll18uUH/11Ve1d+/e4u20R1RUlGJiYgp02J07d+rZZ58tsTaAIw3915a3ILRw4UJNmDBBLVu2LIldBUoUfTgy69at0zfffKM6deqU6HaB4qD/+g0aNEhTpkwp9E+STj31VE2ZMkXHHXdciew78EfQhyPz6quvaseOHd4F36NVKH4pJEkdO3bUyJEjddVVV+m4447T4MGDVaNGDf3yyy969NFH9fnnn2vkyJHq0KFDsbbfuHFjDRgwQA888ICio6PVrVs3ffvtt3rggQeUmppaYiuNJ554okaMGKGzzjpLF198sdavX6/hw4crLi6u2Ntcu3Zt/t+CfvPNN5Kk9957TxkZGcrIyFDnzp1LZN+B4qL/+u3cuVO9evXSnDlzNHLkSO3du7fAT10zMjLy40OBw4k+7Ld582b17NlTZ511lurWrauEhAT98MMPeuihh7R7927deuutJbLfwB9B//XLyclRTk6O97GqVauqS5cuxd9ZoATRh/2WLFmis846S2eeeabq1KmjqKgoTZ06VSNHjlTjxo114YUXlsh+lwahWRSSpCuuuEJt27bVAw88oCFDhmj9+vWqWLGijjvuOE2bNk3HHnvsH9r+008/rcqVK2v06NF68MEH1aJFC73yyis64YQTVL58+RI5hm7duumpp57Svffeq5NOOklVq1bV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XG/9wQcf9NY7dOhgtmGNK8OHDzdf42NFguPoU7duXW/dui615ihrLJDs62LrmjUoej5S1phjKVeunPnYxo0bvfUKFSpE1AZKn2rVqnnrjRs3Nl9TvXp1b92aC9asWeOtr1ixwmzDOidRdDk5Od56ixYtIqpL9nV6pJ85kfQAAAAAAAAoUSwKAQAAAAAAhBCLQgAAAAAAACHEohAAAAAAAEAIsSgEAAAAAAAQQqUifcxK57ISuCT7Lt9WOoK1raB0AuuO4Vu3bvXWK1as6K1bCUiSfedzK0XNSkTbu3ev2UakrOO+9NJLzdeQPoaSsnLlSm/d6ndBCQzW2JKSkuKt//jjj956jRo1zDYs1pgTE+Mflq26FJywhnAKmrsiTc686667vPUPPvjAfE1aWpq3Xr9+fW/9b3/7m7f+l7/8xWyjS5cu3rqVPla7dm1vvV69emYbVr/785//7K2vW7fOWw9KD7T210oT+/TTT731K6+80mzjySef9NY/+eQTb/3222/31m+55RazDRxdsrOzvfVI033HjRtntvGPf/zDW//ll1+89eJcq0ea9GklhgUl7L744ove+oYNG7z1du3aeeszZ84028DhNWDAAG99586d3nrQddnu3bu9dSul8tRTT/XWg9LHVq1a5a1b19Bly5Y1t2WxkgiD0jZ9guZH6/urlWpojRFB34MrV67srVvfwdPT07312NhYsw3rNYmJid66NW5ZCaeS9NNPP5mPFQW/FAIAAAAAAAghFoUAAAAAAABCiEUhAAAAAACAEGJRCAAAAAAAIIRYFAIAAAAAAAihUpE+1qdPH289KI3Huiu5dZd46/n79+8329i0aZO3npyc7K3n5uZ660F3abfuLG/tl9VGcVh3cLeSUqw7qAMlyUol2bZtm7duna+SnQxiJSe9+eab3rqVoCLZqQrWcVhjlJWIJtmJRwivoPHY6hMPP/ywt26l9AWlmGVlZQXsXWFjx4711qtXr26+plu3bhHtl9W3rLFDsudnK4HJGjuCxqFq1ap561dffbW3bl2vWEkwkp3O+PPPP3vrVlJb48aNzTa+/fZb8zGUPla/t87xqVOneutTpkwx27j++uu9desa1zr3g9LHLFb6WEJCgrf+9ddfm9uyEo/Lly/vrTdv3txbJ33syGUlUX333XfeelCal3U999VXX3nrVupzv379zDYq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i/X8oATQtm3beutWouIrr7zirQelfFpph2effba3TsoYrCQdK03M6ndB6WMbN2701q1EvuKwthVp+ljQdw6r79WpU8dbL8mUKRwa1rWcdV5Yc4Fkp2dbCWfWd1prnySpa9eu3rrVr+fMmeOtP/7442YbVvv169f31q35P+h6xRo/rP2y+mL37t3NNqykzxtuuMFbHzZsmLf++eefm218+eWX3rr1vlvfT4KOo1GjRuZjRcE3dQAAAAAAgBBiUQgAAAAAACCEWBQCAAAAAAAIIRaFAAAAAAAAQohFIQAAAAAAgBAqFeljlqDEECu1Ky4uzlu37m5enIQAKy3NSi6yElSC2re2ZR130J3dU1NTvfWgtBSfoLvgByWsASVh5cqV3nr79u3N19SrV89br169urdupZXs2LHDbKNKlSreutWHrfQJq58CPkFJVJaMjAxv3UorOeWUU8xtWalCHTp08NZ79uzprQelYFnzed26db11Kx0pKGXU2t8hQ4Z469a1xD//+U+zjdWrV3vrLVu29NafffZZb33y5MlmG507d/bWv/76a2+9JNOfUDoNHz7cW7euWa05OOga17petlhzcHHOV+s11vVq0HFYx271YWv+x5GrRo0a3npWVpa3vnz58ojbsFItTz/9dG+9devW5ras748///yzt96wYUNv/dRTTzXbiHQsKFeunLcelBK8bt06b71SpUreujWm7Ny502zDul6yUn+tRNYWLVqYbVgJZxdffLG3/sEHH3jrQd+nrWu4ouKXQgAAAAAAACHEohAAAAAAAEAIsSgEAAAAAAAQQiwKAQAAAAAAhBCLQgAAAAAAACFUKtLHrISAoEQt6+7jVkKWlf4RlGhgbSsxMdFbD0o4sVgJa9Zd1DMzM731TZs2mW1YKWNW29b7biW7SHZiBFBSNm/e7K1bfUKSKlas6K2XL1/eW9+9e7e3HnTuW2li2dnZ3rqViPbFF1+YbQC/VZwx99JLL/XWrXP43HPPNbdlpYlMmjTJW7eSNgYMGGC2YaWiNGvWzFtv27attz5lyhSzDSstpXfv3t66NTeXLVvWbMP6rKwkEWvcmjVrltmGlaJWrVo1b71Vq1bmthAOo0ePLpHtBF1HR5pMa20rqA2rf5VUXbKP46uvvjJfg9LFSsGyvhM1adLE3NYxxxzjrVvXq9Y15syZM802rO+1FmuO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V111laKjoyM65hLlDqOnn37aSXIzZsxwubm5buvWre799993WVlZrlOnTi43Nzf/uQ0aNHAtW7YsUHPOub59+7rKlSu7ffv2Oeec++tf/+piY2Pd/PnzzXZvuOEGJ8l9/vnnBeqXXnqpi4qKct9//71zzrlFixY5Sa5p06Zu7969+c+bOXOmk+RefPFF55xz69atc5LcyJEjA4+3cePGrnPnzoXqU6ZMcZJcp06dCj126623Ot/HlPfeLVq0yDnn3MKFC110dLQ7++yzA/fhxBNPdNnZ2YXqL774opPkXnvttQL1WbNmOUnusccec845t2DBAifJXX311QWe9/zzzztJbuDAgYHtF3V/cOSj/x4Q5v7rnHMffPCBK1OmTKFt4shHHz4gjH14+vTpTlL+vz59+rgtW7YU6bU4MtB/Dwhb/x0/fryLjY1133zzjXPuf8c/duzY330tjiz04QPC1ocvu+wy99RTT7mpU6e6N954w5199tlOkjvnnHN+97UH0xHxdzzHHHOMYmNjlZKSohNOOEEVKlTQm2++mf8z5p9++knfffedzj77bEkH/t+tvH99+vTRypUr9f3330uS3nvvPXXt2lUNGzY02/vwww/VqFGj/D95yDNo0CA55/Thhx8WqJ944okFVu6aNWsmSfkrjxUrVlTt2rV1//33a8SIEZozZ06Bn98V1Z///OeIX5Nn4sSJ2rdvny6//PJivX78+PEqX768TjrppALvb4sWLZSVlaWPPvpI0oGVakn5n0We/v3787PzkKL/HhDG/vvll1+qf//+OuaYY3T33XcXa99x+NGHDwhTH27atKlmzZqlqVOn6qGHHtKcOXPUs2dP7dixo1j7j8OH/ntAGPrv5s2b9be//U3XX3+9mjRpUqx9xZGHPnxAGPqwdOCXV+eff746deqkU045Rc8995wGDx6s5557TnPmzCnW/peEI2JRaMyYMZo1a5Y+/PBD/e1vf9OCBQs0YMCA/Mfz/gbymmuuUWxsbIF/l112mSTlR6muXbtW1apVC2xv/fr1qly5cqF6lSpV8h//tbS0tAL/nfdzt507d0qSoqKiNHnyZPXq1Uv33XefWrVqpYyMDF155ZUR/ZTMt09Flff3jr937JbVq1dr06ZNKlu2bKH3eNWqVfnvb957k5WVVeD1MTExhd4nhAP994Cw9d+8L5F169bVu+++W+hnwCg96MMHhKkPJyUlqU2bNurUqZOuvPJKvf766/r888/1+OOPF2v/cfjQfw8IQ/+9+eabFRsbq8GDB2vTpk3atGmTtm3bJknasWOHNm3aJOdcsY4Bhw99+IAw9GHLOeecI0mF7tV0KB0RP+1o2LBh/k21unbtqn379unJJ5/Uq6++qn79+ik9PV3Sgb81PP30073bqF+/vqQDN0v8vZudpqWlaeXKlYXqK1askKT89iKRnZ2dfyOrH374Qa+88opuu+027dmzR6NGjSrSNnw30sqLmty9e3eBL115J2eevJtELlu2rFjpP+np6UpLS9P777/vfTwlJUXS/waGVatWqWrVqvmP7927t9AggnCg/x4Qpv47Z84c9ejRQ9nZ2ZowYUL+35SjdKIPHxCmPvxbbdq0UZkyZfTDDz8Uexs4POi/B4Sh/86bN0+LFy8u9IVUUn4C2caNG1W+fPlIDwGHEX34gDD0YUveYu7hDGM6In4p9Fv33XefKlSooFtuuUX79+9X/fr1VbduXX399ddq06aN91/eh9W7d29NmTIl/2d0Pt27d9f8+fP15ZdfFqiPGTNGUVFR6tq16x/a/3r16umf//ynmjZtWqCNuLi4/FXVosq7M/vcuXML1N9+++0C/3388ccrOjpa//73vwO3Z+1D3759tX79eu3bt8/7/uYNNl26dJEkPf/88wVe/8orr2jv3r2RHBqOUvTf/zka++9XX32lHj16qFq1apo4caIqVKhQpNeh9KAP/8/R2Id9pk6dqv3796tOnTrF3gaODPTf/zna+u/IkSM1ZcqUAv8efPBBSdJtt92mKVOmKDk5+Xe3gyMbffh/jrY+bBkzZowkHdaY+iPil0K/VaFCBd1444267rrr9MILL+icc87R448/rt69e6tXr14aNGiQqlatqg0bNmjBggX68ssvNXbsWEnS7bffrvfee0+dOnXSTTfdpKZNm2rTpk16//339Y9//EMNGjTQ1VdfrTFjxujEE0/U7bffruzsbL3zzjt67LHHdOmll0acoDN37lwNHjxYZ5xxhurWrauyZcvqww8/1Ny5c3XDDTfkP69p06Z66aWX9PLLL6tWrVqKj49X06ZNA7fdp08fVaxYURdccIFuv/12xcTE6JlnntHSpUsLPC8nJ0c33XST7rjjDu3cuVMDBgxQamqq5s+fr3Xr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",
      "text/plain": [
       "<Figure size 1500x500 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "images, _ = next(iter(train_loader_Fashion))\n",
    "visualize_reconstruction(model_Fashion.cpu(), images, rows=5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 尝试使用更复杂的AutoEncoder进行重构"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 添加正则化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "class RegularizedAutoencoder(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(RegularizedAutoencoder, self).__init__()\n",
    "        # 编码层\n",
    "        self.encoder = nn.Sequential(\n",
    "            nn.Linear(28 * 28, 256),\n",
    "            nn.ReLU(),\n",
    "            nn.Dropout(0.2),\n",
    "            nn.Linear(256, 128),\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm1d(128),\n",
    "            nn.Linear(128, 64),\n",
    "            nn.ReLU(),\n",
    "            nn.Dropout(0.2)\n",
    "        )\n",
    "        # 解码层\n",
    "        self.decoder = nn.Sequential(\n",
    "            nn.Linear(64, 128),\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm1d(128),\n",
    "            nn.Linear(128, 256),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(256, 28 * 28),\n",
    "            nn.Sigmoid()\n",
    "        )\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = self.encoder(x)\n",
    "        x = self.decoder(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 使用数据增强提升泛化能力"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "transform = transforms.Compose([\n",
    "    transforms.RandomRotation(10),\n",
    "    transforms.RandomHorizontalFlip(),\n",
    "    transforms.ToTensor()\n",
    "])\n",
    "train_dataset_FashionNew = datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform)\n",
    "train_loader_FashionNew = DataLoader(train_dataset_FashionNew, batch_size=64, shuffle=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 添加学习率衰减"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "model_FashionNew = RegularizedAutoencoder().to(device)\n",
    "optimizer_FashionNew = optim.AdamW(model_FashionNew.parameters(), lr=1e-4, weight_decay= 4e-5) # 这里选择AdamW\n",
    "scheduler = StepLR(optimizer_FashionNew, step_size=10, gamma=0.1)  # 每10个epoch学习率衰减为原来的0.1倍\n",
    "criterion_FashionNew = nn.MSELoss() # 定义损失函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch [1/30], Loss: 0.0287\n",
      "Epoch [2/30], Loss: 0.0277\n",
      "Epoch [3/30], Loss: 0.0269\n",
      "Epoch [4/30], Loss: 0.0263\n",
      "Epoch [5/30], Loss: 0.0258\n",
      "Epoch [6/30], Loss: 0.0253\n",
      "Epoch [7/30], Loss: 0.0249\n",
      "Epoch [8/30], Loss: 0.0246\n",
      "Epoch [9/30], Loss: 0.0245\n",
      "Epoch [10/30], Loss: 0.0245\n",
      "Epoch [11/30], Loss: 0.0245\n",
      "Epoch [12/30], Loss: 0.0244\n",
      "Epoch [13/30], Loss: 0.0244\n",
      "Epoch [14/30], Loss: 0.0243\n",
      "Epoch [15/30], Loss: 0.0243\n",
      "Epoch [16/30], Loss: 0.0243\n",
      "Epoch [17/30], Loss: 0.0242\n",
      "Epoch [18/30], Loss: 0.0242\n",
      "Epoch [19/30], Loss: 0.0242\n",
      "Epoch [20/30], Loss: 0.0242\n",
      "Epoch [21/30], Loss: 0.0242\n",
      "Epoch [22/30], Loss: 0.0242\n",
      "Epoch [23/30], Loss: 0.0242\n",
      "Epoch [24/30], Loss: 0.0242\n",
      "Epoch [25/30], Loss: 0.0242\n",
      "Epoch [26/30], Loss: 0.0242\n",
      "Epoch [27/30], Loss: 0.0242\n",
      "Epoch [28/30], Loss: 0.0242\n",
      "Epoch [29/30], Loss: 0.0241\n",
      "Epoch [30/30], Loss: 0.0242\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2AAAAHUCAYAAABcVkvuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtO0lEQVR4nO3de1xUdf7H8ffMAMP9fldAzWuaWaClRXZRTNuuurVmpZW7a9b2M2s3u1pp2trNbUvdTK02M7estjZT0dQualpeKjUvqeAFRPDCTWBgzu8PZGoEFRE5MLyej8c8YL7zPed8Dl+mePs98z0WwzAMAQAAAADOOqvZBQAAAABAc0EAAwAAAIAGQgADAAAAgAZCAAMAAACABkIAAwAAAIAGQgADAAAAgAZCAAMAAACABkIAAwAAAIAGQgADAAAAgAZCAAOARshisdTqsWzZsjM6zlNPPSWLxVKnbZctW1YvNZzJsT/44IMGP7anOtnv2bBhw8wuT5dffrm6dOlidhkAcMa8zC4AAFDdypUr3Z6PGzdOS5cu1RdffOHWfu65557RcYYPH66rr766TtteeOGFWrly5RnXgMZj0KBBevDBB6u1R0VFmVANAHgmAhgANEIXX3yx2/OoqChZrdZq7ccrLi6Wv79/rY/TsmVLtWzZsk41BgcHn7IeNB4Oh0MWi0VeXif+X39MTAxjCgBnGZcgAkATVXVJ1pdffqlevXrJ399fd911lyRp7ty5SktLU1xcnPz8/NSpUyeNGTNGRUVFbvuo6RLEVq1a6Xe/+50WLFigCy+8UH5+furYsaNmzpzp1q+mSxCHDRumwMBAbd++XQMGDFBgYKASEhL04IMPqrS01G37PXv2aNCgQQoKClJoaKiGDBmiNWvWyGKx6M0336yXn9FPP/2k66+/XmFhYfL19VW3bt301ltvufVxOp0aP368OnToID8/P4WGhqpr1676xz/+4epz4MAB/elPf1JCQoLsdruioqJ0ySWXaPHixaes4euvv9ZVV12loKAg+fv7q1evXvrss89cr2/YsEEWi0UzZsyotu3nn38ui8WiTz75xNW2bds23XrrrYqOjpbdblenTp302muvuW1XNTb//ve/9eCDD6pFixay2+3avn17rX92J1I1xhs3btRVV12lgIAARUVF6b777lNxcbFb35KSEj3yyCNq3bq1fHx8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TNBdd92loKAgJSYm6vXXX3e9fvzM1LJly2SxWLRkyRKlpKTI399fvXr1cguHkjR+/HhFR0crKChIw4cP15gxY9StW7c6jZcklZaW6v7771d0dLR8fX116aWXas2aNa7XDx06pCFDhigqKkp+fn5q166dZs2aJanyVgT33Xef4uLi5Ovrq1atWmnixIl1rqU2mAHzADkFJcotLNWCjdm6qE2E2eUAAAA0WUcdFTr3yYWmHHvTM/3k71M/f54//PDDevHFFzVr1izZ7XaVlJQoOTlZDz/8sIKDg/XZZ5/p9ttvV5s2bXTRRRedcD8vvviixo0bp0cffVQffPCB7rnnHl122WXq2LHjCbd57LHH9OKLLyoqKkojRozQXXfdpW+++UaSNHv2bD377LOaMmWKLrnkEr333nt68cUX1bp16zM613nz5umtt95SUlKSJk2apH79+mn79u0KDw/XE088oU2bNunzzz9XZGSktm/frqNHj0qSXnnlFX3yySf6z3/+o8TERO3evVu7d++ucy21QQDzAP06x+rDtXu1aON+Pfm7c7mDOwAAQDM3atQo3XTTTW5tDz30kOv7v/zlL1qwYIHef//9kwawAQMGaOTIkZIqg87LL7+sZcuWnTSAPfvss+rdu7ckacyYMbrmmmtUUlIiX19f/fOf/9Tdd9+tO++8U5L05JNPatGiRSosLKzTeRYVFWnatGl688031b9/f0nS9OnTlZ6erhkzZuivf/2rMjMzdcEFFyglJUVS5cxelczMTLVr106XXnqpLBaLkpKS6lTH6SCAeYDL2kXJ19uqvYePauO+fHVpEWJ2SQAAAE2Sn7dNm57pZ9qx60tV2KhSUVGh5557TnPnztXevXtVWlqq0tJSBQQEnHQ/Xbt2dX1fdaljTk5OrbeJi4uTJOXk5CgxMVFbtmxxBboqPXr00BdffFGr8zrezp075XA4dMkll7javL291aNHD23evFmSdM8992jgwIFau3at0tLSdMMNN6hXr16SpGHDhqlv377q0KGDrr76av3ud79TWlpanWqpLT4D5gH8fGzq3T5KkrRwY7bJ1QAAADRdFotF/j5epjzq8yqm44PViy++qJdffll/+9vf9MUXX2j9+vXq16+fysrKTrqf4xfvsFgscjqdtd6m6px+u83x51nbz77VpGrbmvZZ1da/f39lZGRo1KhR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SfsvX75cycnJ8vX1VZs2bTRt2jS316dPn67U1FSFhYUpLCxMffr00erVq936lJeX6/HHH1fr1q3l5+enNm3a6JlnnpHT6az382vsooN9dWFimCRp0SYuQwQAAADOJlMD2Ny5czVq1Cg99thjWrdunVJTU9W/f39lZmbW2H/nzp0aMGCAUlNTtW7dOj366KO6//77NW/ePFefZcuWafDgwVq6dKlWrlypxMREpaWlae/eva4+f//73zVt2jS9+uqr2rx5syZNmqTnn39e//znP8/6OTdGVTdlXvATAQwAAAA4m0wNYC+99JLuvvtuDR8+XJ06ddLkyZOVkJCgqVOn1th/2rRpSkxM1OTJk9WpUycNHz5cd911l1544QVXn9mzZ2vkyJHq1q2bOnbsqOnTp8vpdGrJkiWuPitXrtT111+va665Rq1atdKgQYOUlpam77777qyfc2NU9Tmwb3ce1KGiMpOrAQAAADyXl1kHLisr0/fff68xY8a4taelpWnFihU1brNy5UqlpaW5tfXr108zZsyQw+GQt7d3tW2Ki4vlcDgUHh7uarv00ks1bdo0bd26Ve3bt9eGDRv09ddfa/LkySest7S0VKWlpa7n+fn5kiSHwyGHw3HSc616/VT9zBIf7KMOMYHasr9Qizbu000XtDC7pCapsY8zzhxj3Dwwzp6PMfZ8jHHz0JjG+XRqMC2A5ebmqqKiQjExMW7tMTExys6u+VK47OzsGvuXl5crNzdXcXFx1bYZM2aMWrRooT59+rjaHn74YR05ckQdO3aUzWZTRUWFnn32WQ0ePPiE9U6cOFFPP/10tfZFixbJ39//pOdaJT09vVb9zNDa26otsuqdpT/KN2uD2eU0aY15nFE/GOPmgXH2fIyx52OMm4fGMM7FxcW17mtaAKtisVjcnhuGUa3tVP1rapekSZMmac6cOVq2bJl8fX1d7XPnztU777yjd999V507d9b69es1atQoxcfHa+jQoTUe95FHHtHo0aNdz/Pz85WQkKC0tDQFBwef9BwdDofS09PVt2/fGmfpGoPWWQVaMGWlthZ46fI+l8vfx/RfjSanKYwzzgxj3Dwwzp6PMfZ8jHHz0JjGuerquNow7a/syMhI2Wy2arNdOTk51Wa5qsTGxtbY38vLSxEREW7tL7zwgiZMmKDFixera9eubq/99a9/1ZgxY/SH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f//+ru/PO+889ezZU+ecc47eeustjR49usbjPvLII26v5efnKyEhQWlpaQoODj7JGVYm4vT0dPXt27fGWTp4hqY0zgMktf1yp15I36b/ZdrU5dz2uvuSVmaX1eg1pTFG3THOno8x9nyMcfPQmMa56uq42jAtgEVGRspms1Wb7crJyak2y1UlNja2xv5eXl7VZq5eeOEFTZgwQYsXL1bXrl1PWktAQIDOO+88bdu27YR97Ha77HZ7tXZvb+9aD/jp9EXT1VTG+b6r2qvCsOjlxVv13IKt8vX20rBLWptdVpPQVMYYZ4Zx9nyMsedjjJuHxjDOp3N801ZB9PHxUXJycrUpw/T0dPXq1avGbXr27Fmt/6JFi5SSkuJ20s8//7zGjRunBQsWKCUl5ZS1lJaWavPmzTVewgh4svuvaqv7rmgrSXrq002a/W2GyRUBAAB4NlOXoR89erTeeOMNzZw5U5s3b9YDDzygzMxMjRgxQlLlZX+/XblwxIgRysjI0OjRo7V582bNnDlTM2bM0EMPPeTqM2nSJD3++OOaOXOmWrVqpezsbGVnZ6uwsNDV56GHHtLy5cu1c+dOffvttxo0aJDy8/M1dOjQhjt5oBGwWCx6MK29/nRZ5QI0j330k/73wz6TqwIAAPBcpn4G7JZbblFeXp6eeeYZZWVlqUuXLpo/f76SkpIkSVlZWW73BGvdurXmz5+vBx54QK+99pri4+P1yiuvuJaglypv7FxWVqZBgwa5HWvs2LF66qmnJEl79uzR4MGDlZubq6ioKF188cVatWqV67hAc2KxWPRI/44qcVTo7ZUZGj13g6IC7bqoTc0L0gAAAKDuTF+EY+TIkRo5cmSNr7355pvV2nr37q21a9eecH+7du065THfe++92pYHNAsWi0Vjr+2s/fklWrhxv/749nead08vtYsJMrs0AAAAj2LqJYgAGg+b1aJ//OECXZgYqvyScg2btUb780vMLgsAAMCjEMAAuPh62/TG0O5qExmgvYePatisNSooMf/mhgAAAJ6CAAbATXiAj968s4ciA320OStfI2evlaPCaXZZAAAAHoEABqCaxAh/zRzWXX7eNn21LVdj5v3ouuk5AAAA6o4ABqBGXVuGasqQC2WzWjRv7R69nL7V7JIAAACaPAIYgBO6omO0xt/QRZL0yhfbNWd15im2AAAAwMkQwACc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",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_epochs = 30\n",
    "train_losses = []\n",
    "\n",
    "# 定义训练函数\n",
    "def train_model(model, train_loader, criterion, optimizer, scheduler, num_epochs, device):\n",
    "    model.train()  # 设置模型为训练模式\n",
    "    for epoch in range(num_epochs):\n",
    "        epoch_loss = 0\n",
    "        for data in train_loader:\n",
    "            inputs, _ = data\n",
    "            inputs = inputs.view(inputs.size(0), -1).to(device)  # 展平图片并移动到设备\n",
    "\n",
    "            # 前向传播\n",
    "            outputs = model(inputs)\n",
    "            loss = criterion(outputs, inputs)\n",
    "\n",
    "            # 反向传播和优化\n",
    "            optimizer.zero_grad()\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "\n",
    "            epoch_loss += loss.item()\n",
    "        # 记录和打印损失\n",
    "        epoch_loss /= len(train_loader)\n",
    "        train_losses.append(epoch_loss)\n",
    "        print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {epoch_loss:.4f}')\n",
    "        \n",
    "        # 调整学习率\n",
    "        scheduler.step()\n",
    "\n",
    "    # 绘制损失曲线\n",
    "    plt.figure(figsize=(10, 5))\n",
    "    plt.plot(np.arange(1, num_epochs + 1), train_losses, label='Training Loss')\n",
    "    plt.xlabel('Epochs')\n",
    "    plt.ylabel('Loss')\n",
    "    plt.title('Training Loss over Epochs')\n",
    "    plt.legend()\n",
    "    plt.grid(True)\n",
    "    plt.show()\n",
    "\n",
    "# 调用训练函数\n",
    "train_model(model_FashionNew, train_loader_FashionNew, criterion_FashionNew, optimizer_FashionNew, scheduler, num_epochs, device)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 可视化重构"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIUAAAHHCAYAAAAh5OhtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACGOElEQVR4nO3dd5wV1f3/8feyvS/ssnR2KdI7CCiEjgpiogaNLYKxxJposBvsxm7wazTEHnvFhg0pYlQQVBQRFQsgvS+9LMv5/cFvV697PsPOutR5PR8PHo/4uXfmzMydc2buyd15xznnnAAAAAAAABAp1fb2BgAAAAAAAGDPY1IIAAAAAAAggpgUAgAAAAAAiCAmhQAAAAAAACKISSEAAAAAAIAIYlIIAAAAAAAggpgUAgAAAAAAiCAmhQAAAAAAACKISSEAAAAAAIAIYlIIwG4zdepUHXfccapTp46SkpJUu3ZtDR06VFOmTAm1nmuvvVZxcXGV2oZ3331XcXFxevfddyu1fEX16dNHffr0qdD72rRps1u3ZX/Sv39/nX322ZKkwsJCxcXF7fLfo48+utu365fbkp6erk6dOulf//qXnHO7vf1SEyZMUEZGhhYtWrTH2qyowsJCDR8+fJfv++Xnl5WVpUMPPVRPP/307t/IPezDDz/Utddeq6Kior22DbNnz9a1116refPmVfm6KzoWDx8+XBkZGVXe/v7qT3/6k4444oiy/543b563X7Rv316jRo1SSUlJpdp56qmnNGrUqHL1TZs26dprr93t18HK6NOnT8xxSElJUatWrXTjjTdq27Zte2w75syZo6SkJH366ad7rE0A2FcwKQRgt7jnnnvUo0cPLVy4ULfddpvGjx+vO+64Q4sWLVLPnj31r3/9q8LrOuOMM0JPJJXq1KmTpkyZok6dOlVqeew+r7zyij744AONHDlSkvTSSy9pypQpZf9OP/10SdJbb70VUz/yyCP3yPb16NGjrM3HH39caWlpuuCCC3TzzTfvkfalnZNmXbt21ZVXXrnH2twdSieDP/zwQ40ePVrr1q3TSSedpKeeempvb1qV+vDDD3Xdddft9Umh6667brdMCiG8GTNm6L///a9uvPHGcq9dcMEFZWPMc889px49euiiiy7SpZdeWqm2giaFrrvuun1yUkiSGjduXHYcnn/+eR100EEaOXKkzj///D22Dc2aNdPJJ5+siy66aI+1CQD7ioS9vQEADjwffPCBLrzwQg0ePFgvvfSSEhJ+GmpOOOEEHXPMMfrrX/+qjh07qkePHuZ6Nm3apLS0NNWvX1/169ev1LZkZWWpe/fulVoWu9c//vEPHXPMMapXr54kqWPHjjGvv/XWW5Kkzp07Ky8vb49vX05OTsy5M2DAADVs2FD/+c9/9ugkzXnnnac//OEPuvHGG9WgQYM91m5VqlWrVtmxPOSQQ9SjRw8VFhbqP//5j0466aS9vHV7z+bNm5Wamrq3NwO70S233KKuXbuqS5cu5V5r2LBhzBhzxBFHaNasWXr66ad155137snN3KtSU1NjjsOgQYPUqlUr/fe//9X//d//KSUlZY9sx/nnn68uXbroww8/1KGHHrpH2gSAfQG/FAJQ5W6++WbFxcXp3//+d8yEkCQlJCTovvvuU1xcnG655ZayeumfJXz66acaOnSoqlevriZNmsS89nNbt27ViBEjVLt2baWlpalXr1765JNPyv1Ji+/Px0r/tOG7777T4MGDlZGRoQYNGmjEiBHaunVrTDvXXXedunXrpho1aigrK0udOnXSQw89VKV/QhQXF6fzzz9fjzzyiJo3b67U1FR16dJFU6dOlXNOt99+uxo1aqSMjAz169dP3333Xczy77zzjn73u9+pfv36SklJUdOmTfXnP/9ZK1euLNfWK6+8onbt2ik5OVmNGzfW3Xff7T2+zjndd9996tChg1JTU1W9enUNHTpUP/zwQ8z7ZsyYoSFDhig/P1/JycmqW7eujjzySC1cuDBwn2fMmKFp06bpj3/8Y6hjtWXLFl1xxRVq1KiRkpKSVK9ePZ133nnlfplRWFioIUOG6KWXXlK7du2UkpKixo0b6//+7/9CtfdzWVlZatasmZYtWxZTX716tc4991zVq1dPSUlJaty4sa666qqYc+m4445T69atY5Y76qijFBcXp+eff76s9umnnyouLk6vvfZazPsyMjL0wAMP7HIbP/74Y51wwgkqLCxUamqqCgsLdeKJJ2r+/Pkx73v00UcVFxenSZMm6ZxzzlFeXp5yc3N17LHHavHixTHvLS4u1qWXXlrW13r27Klp06bt+oAFKCgoUM2aNcsdy3Xr1uniiy+O+XwvvPBCbdy4MeZ9O3bs0D333FN2fpZO4L366qsx77ntttvUokULJScnKz8/X6eeemq5c7P0TzqnT5+u3/zmN0pLS1Pjxo11yy23aMeOHTHru/HGG8v6aE5Ojtq1a6e7775b0s5x6pJLLpEkNWrUqOzPYUrHntJzcsyYMerYsaNSUlLKftFj/VlkXFycrr322pja119/rRNPPFG1atVScnKyGjZsqFNPPVVbt27Vo48+quOOO06S1LdvX++fXI4fP179+/dXVlaW0tLS1KNHD02YMKFc26+//ro6dOig5ORkNWrUSHfccYfnk6y40v0fO3asOnbsqNTUVLVs2VJjx46VtPOcbNmypdLT09W1a1d9/PHHMctX9NyWpPfff1+HHHKIUlJSVK9ePY0cOVIPPvig4uLiyv2C6tlnn9Uhhxyi9PR0ZWRk6PDDD9eMGTNi3vPDDz/ohBNOUN26dZWcnKxatWqpf//++uyzzwL3edmyZXrppZdCjXPZ2dlKTEyMqVXkXO7Tp49ef/11zZ8/P+bPsebNm6eaNWtK2nk9K63//Dr5/vvvq3///srMzFRaWpoOPfRQvf766zHbUDpmTJw4UWeeeaZyc3OVlZWlU089VRs3btTSpUt1/PHHKycnR3Xq1NHFF1+s4uLiCu/3zyUkJKhDhw7atm1bzNhekfH/kksuUXZ2dsyf4F1wwQWKi4vT7bffXlZbtWqVqlWrpnvuuaes1rlzZ7Vs2VKjR4+u1HYDwH7LAUAV2r59u0tLS3PdunULfF/Xrl1dWlqa2759u3POuWuuucZJcgUFBe6yyy5z77zzjnv55ZdjXvu5E0880VWrVs1dfvnlbty4cW7UqFGuQYMGLjs72w0bNqzsfZMmTXKS3KRJk8pqw4YNc0lJSa5ly5bujjvucOPHj3dXX321i4uLc9ddd11MO8OHD3cPPfSQe+edd9w777zjbrjhBpeamlrufb1793a9e/fe5fHp3bu3a926dUytdL8PPfRQN2bMGPfSSy+5Zs2auRo1ariLLrrI/e53v3Njx451Tz75pKtVq5Zr166d27FjR9ny//73v93NN9/sXn31VTd58mT33//+17Vv3941b97cbdu2rex9b775pqtWrZrr06ePe+mll9zzzz/vunXr5goLC8sd3zPPPNMlJia6ESNGuLfeess99dRTrkWLFq5WrVpu6dKlzjnnNmzY4HJzc12XLl3cc8895yZPnuyeffZZd/bZZ7vZs2cHHofrr7/excfHu/Xr15vvKf3cV6xY4ZxzbseOHe7www93CQkJbuTIkW7cuHHujjvucOnp6a5jx45uy5YtZcsWFBS4evXquYYNG7qHH37YvfHGG+7kk092ktztt9++i09p5/JHHnlkTK24uNjVrl3btW3btqy2efNm165dO5eenu7uuOMON27cODdy5EiXkJDgBg8eXPa+0aNHO0lu8eLFZevKzMx0qamp7swzzyx736233uoSEhLcunXrYtoeNGiQ69Sp0y63+/nnn3dXX321e+mll9zkyZPdM88843r37u1q1qxZdhydc+6RRx5xklzjxo3dBRdc4N5++2334IMPuurVq7u+ffvGrHPYsGEuLi7OXXLJJW7cuHHurrvucvXq1XNZWVkxfc0iyZ133nkxtaKiIhcfH++OOuqostrGjRtdhw4dXF5enrvrrrvc+PHj3d133+2ys7Ndv379Ys75P/7xjy4uLs6dccYZ7pVXXnFvvvmmu+mmm9zdd99d9p6zzjrLSXLnn3++e+utt9zo0aNdzZo1XYMGDWKORe/evV1ubq476KCD3OjRo90777zjzj33XCfJ/fe//y1738033+zi4+PdNddc4yZMmODeeustN2rUKHfttdc655xbsGCBu+CCC5wkN2bMGDdlyhQ3ZcoUt3btWufcznOqTp06rnHjxu7hhx92kyZNctOmTXNz5851ktwjjzziPXbXXHNN2X9/9tlnLiMjwxUWFrrRo0e7CRMmuCeeeMIdf/zxbt26dW758uXuH//4h5Pk7r333rJtWL58uXPOuccff9zFxcW5o48+2o0ZM8a99tprbsiQIS4+Pt6NHz++rJ3x48e7+Ph417NnTzdmzBj3/PPPu4MPPtg1bNiw3FjhM2zYMJeenh5TKygocPXr13dt2rRxTz/9tHvjjTdct27dXGJiorv66qtdjx49Ysa/WrVquU2bNpUtX9Fz+/PPP3cpKSmuXbt27plnnnGvvvqqGzx4cNk4N3fu3LL33nTTTS4uLs796U9/cmPHjnVjxoxxhxxyiEtPT3dffvll2fuaN2/umjZt6h5//HE3efJk9+KLL7oRI0bEXFd8HnvsMSep3HhY+pnfeuutrri42BUXF7uVK1e6hx56yCUkJLirrroq5v0VOZe//PJL16NHD1e7du2yz33KlCluy5Yt7q233nKS3Omnn15W/+6775xzzr377rsuMTHRde7c2T377LPu5ZdfdocddpiLi4tzzzzzTNk2lI4ZjRo1ciNGjHDjxo1zt956q4uPj3cnnnii69Spk7vxxhvdO++84y677DInyd15552Bx8c5/zXROee6dOnicnJyyu4RKjr+l+7rhx9+WLauFi1auNTUVDdw4MCy2rPPPuv9bM455xyXl5cXM94AwIGOSSEAVWrp0qVOkjvhhBMC3/eHP/zBSXLLli1zzv00AXD11VeXe+8vJ4W+/PJLJ8lddtllMe97+umnnaQKTQpJcs8991zM8oMHD3bNmzc3t7mkpMQVFxe766+/3uXm5sbcNP7aSaHatWu7DRs2lNVefvllJ8l16NAhpp1Ro0Y5SW7mzJne9e/YscMVFxe7+fPnO0nulVdeKXvt4IMPdg0aNHBbt24tq61fv97l5ubGHN8pU6Z4b+gXLFjgUlNT3aWXXuqcc+7jjz92ksom78IYNGiQa9GiReB7fjkpVHqzf9ttt8W8r/Tm/v777y+rFRQUuLi4OPfZZ5/FvHfgwIEuKyvLbdy4MbDtgoICN3jw4LIvbPPnzy+bKBs7dmzZ+0one355Lt16661Okhs3bpxzzrnvvvvOSXKPPfaYc865999/30lyl156qWvUqFHM9h166KHltueqq65y1apVizlHKmL79u1uw4YNLj09PWbCpPQL3rnnnhvz/ttuu81JckuWLHHOOffVV185Se6iiy6Ked+TTz5Zrq9ZStspLi5227Ztc3PmzHG//e1vXWZmpvv444/L3nfzzTe7atWquenTp8cs/8ILLzhJ7o033nDOOffee+85SeW+OP9c6Xb/cv8++ugjJ8ldeeWVZbXevXs7Se6jjz6KeW+rVq3c4YcfXvbfQ4YMcR06dAjc19tvv73cxEOpgoICFx8f77755puYephJoX79+rmcnJyySR6f559/vtyY59zOSbcaNWrETMQ5t3Nca9++vevatWtZrVu3bq5u3bpu8+bNZbV169a5GjVq/KpJodTUVLdw4cKy2meffeYkuTp16sT0ydLx79VXXzXbsM7t4447zqWnp8dMFJWUlLhWrVrFfDY//vijS0hIcBdccEHMetevX+9q167tjj/+eOeccytXrnSS3KhRo3a53790zjnnuNTU1HITDKWfue/f8OHDyyZCnAt3Lh955JGuoKCg3HasWLGi3LlUqnv37i4/Pz9mgn779u2uTZs2rn79+mXbXjpm/PJ4HX300U6Su+uuu2LqHTp0qNBEduk1sXSsXbJkibv66qudJDd69Oiy91V0/N+4caNLSkpy119/vXPOuYULF5bdL6SmppZNHp155pmubt265bbngQcecJLcV199tcttB4ADBX8+BmCvcP//z69++WdLv//973e57OTJkyVJxx9/fEx96NCh5f5czRIXF6ejjjoqptauXbtyf4owceJEDRgwQNnZ2YqPj1diYqKuvvpqrVq1SsuXL69QWxXRt29fpaenl/13y5YtJe18tsLPj1Fp/efbuXz5cp199tlq0KCBEhISlJiYqIKCAknSV199JUnauHGjPv74Yx199NFKSkoqWzYjI6PccRg7dqzi4uJ0yimnaPv27WX/ateurfbt25f9OUzTpk1VvXp1XXbZZRo9erRmz55d4f1dvHix8vPzK/x+aednIalc4tVxxx2n9PT0cn8C07p1a7Vv3z6mdtJJJ2ndunUVSph54403lJiYWHY8H3jgAd1zzz0xD7qeOHGi0tPTNXTo0JhlS7exdJuaNGmiwsJCjR8/XtLOP/lr27atTjnlFM2dO1fff/+9tm7dqvfff18DBgwoty35+fnasWOHli5dGrjNGzZs0GWXXaamTZsqISFBCQkJysjI0MaNG8vOhZ/77W9/G/Pf7dq1k/TT+TVp0iRJ0sknnxzzvuOPP77CfU2S7rvvPiUmJiopKUnNmjXTm2++qaefflqdO3cue8/YsWPVpk0bdejQIea8O/zww2P+DOvNN9+UtPNZS5bS7f7ludK1a1e1bNmy3LlSu3Ztde3aNab2y/Gga9eu+vzzz3Xuuefq7bff1rp16yq8/z9fZ7NmzUIvJ+18xtrkyZN1/PHHl/05UBgffvihVq9erWHDhsUc3x07duiII47Q9OnTtXHjRm3cuFHTp0/XscceG/Msl8zMzHJjRVgdOnQoe4aY9NN41qdPH6WlpZWr//z4V/Tcnjx5svr16xfzHLJq1aqVu168/fbb2r59u0499dSY45GSkqLevXuXnW81atRQkyZNdPvtt+uuu+7SjBkzYv6sMMjixYtVs2ZNM7Htr3/9q6ZPn67p06dr0qRJ+sc//qHnnntOJ554Ytl7wp7LYWzcuFEfffSRhg4dGpMWFx8frz/+8Y9auHChvvnmm5hlhgwZEvPfpZ/VLwMAWrZs6f3TPp8vv/yybKytU6eOrr/+el1xxRX685//XPaeio7/aWlpOuSQQ2LG2pycHF1yySXatm2b3n//fUk7/4zSGmsl7ZOJjwCwuzApBKBK5eXlKS0tTXPnzg1837x585SWlqYaNWrE1OvUqbPLNlatWiVp58Nrfy4hIUG5ubkV2s60tLRyD69MTk7Wli1byv572rRpOuywwyRJDzzwgD744ANNnz5dV111laSdD4mtKr88DqUTN1a9dDt37Nihww47TGPGjNGll16qCRMmaNq0aZo6dWrMNq5Zs0bOuXLHTCp/HJctW1b23tIb9dJ/U6dOLXtWUXZ2tiZPnqwOHTroyiuvVOvWrVW3bl1dc801u3yWxObNm0M/PHTVqlVKSEgo94U4Li5OtWvXLjsvStWuXbvcOkprv3yvT8+ePTV9+nRNnTpVjz/+uAoLC3X++eeXfakoXU/t2rXLfenLz89XQkJCTDv9+/cv++Iyfvx4DRw4UG3btlWtWrU0fvx4ffDBB9q8ebP3i0rpsdrVOXfSSSfpX//6l8444wy9/fbbmjZtmqZPn66aNWt6l/1lf0lOTo5pp3T7f3ksw/Q1aeck0vTp0/Xhhx/qP//5jzIzM3XCCSfo22+/LXvPsmXLNHPmzHLnXGZmppxzZefdihUrFB8f7/18S5Vut288qVu3brnP37cvycnJMcfsiiuu0B133KGpU6dq0KBBys3NVf/+/cs9+yZIRcY3y5o1a1RSUlLph+6XPr9p6NCh5Y7xrbfeKuecVq9erTVr1mjHjh2B/aeyKjvOSRU/t1etWlXhcU6SDj744HLH49lnny073+Li4jRhwgQdfvjhuu2229SpUyfVrFlTf/nLX7R+/frA/d3VOFe/fn116dJFXbp0UZ8+fXTFFVdo5MiRev755/X222+X7Y9U8XM5jNLrgrXun7dfKsxn+PPPL0iTJk00ffp0TZs2Tc8//7zat2+vm2++Wc8880zZe8KM/wMGDNDUqVO1ceNGjR8/Xv369VNubq46d+6s8ePHa+7cuZo7d+6vGmsB4EBC+hiAKhUfH6++ffvqrbfe0sKFC71fYBYuXKhPPvlEgwYNUnx8fMxr1v+j+nOlX+CWLVsW8/86b9++/VfdIP/SM888o8TERI0dOzbmxv7ll1+usjZ+rVmzZunzzz/Xo48+qmHDhpXVf/kw6urVqysuLq7cg30llfv1SV5enuLi4vS///2vbJLg535ea9u2rZ555hk55zRz5kw9+uijuv7665WamqrLL7/c3O68vDytXr26wvsp7fzct2/frhUrVsR8MXDOaenSpTr44IMD9+vntYpMaGRnZ5clBnXr1k3dunVT+/btde655+qzzz5TtWrVlJubq48++kjOuZhzd/ny5dq+fXvMrxX69++vhx56SNOmTdNHH32kv//975Kkfv366Z133tH8+fOVkZHhTcsrPVZBKWxr167V2LFjdc0118Qc+61bt4Y+1qVKj9PSpUt/VV+rWbNm2bE85JBD1LJlS/Xu3VsXXXRR2YOG8/LylJqaqocffti7jtJ9r1mzpkpKSrR06VJzkqV0u5csWVJuDFq8eHGl0uwSEhL0t7/9TX/7299UVFSk8ePH68orr9Thhx+uBQsWxPzSxeIb30rHll8+5N73ZTw+Pn6XD3G3lO7zPffcYyYy1qpVS8XFxYqLiwvsP3tamHM7Nze3wuOcJL3wwgtlv6y0FBQU6KGHHpIkzZkzR88995yuvfZabdu2LfChxHl5eRX6VeLPlf5a7/PPP9fhhx++W87lUtWrV1e1atW0ZMmScq+VPnB+TyQ/pqSklI0PBx98sPr27avWrVvrwgsv1JAhQ5SRkRFq/O/fv79Gjhyp9957TxMmTNA111xTVh83bpwaNWpU9t+/VJGxFgAONPxSCECVu+KKK+Sc07nnnhuTACJJJSUlOuecc+Sc0xVXXFGp9ffq1UvSztSYn3vhhRe0ffv2ym20R1xcnBISEmImrjZv3qzHH3+8ytr4tUq/ZP5y8uY///lPzH+np6erS5cuevnll7Vt27ay+oYNG8q+lJcaMmSInHNatGhR2f+L/fN/bdu29W5H+/bt9c9//lM5OTm7/CLUokWLcklmu1J6A//EE0/E1F988UVt3Lix3A3+l19+qc8//zym9tRTTykzM1OdOnUK1bYkHXTQQbr00kv1xRdflJ17/fv314YNG8pNFD722GMx21z6v+Pi4jRy5EhVq1at7DweMGCAJk2apHfeeUe9evUqlzwk7Uw/ys3N9f4ColRcXJycc+XOhQcffLBcP6yoPn36SJKefPLJmPpzzz33q/rab37zG5166ql6/fXXNWXKFEk7z7vvv/9eubm53vOusLBQ0s4/qZSkf//73+b6+/XrJ6n8uTJ9+nR99dVX3i+DYeTk5Gjo0KE677zztHr16rJEq1/+0qoiatWqpZSUFM2cOTOm/sorr8T8d2pqqnr37q3nn3/emyxYytqGHj16KCcnR7Nnz/Ye3y5duigpKaks/WvMmDExv/RYv359TCrenhTm3O7du7cmTpwYc4x27NgRk/InSYcffrgSEhL0/fffm8fDp1mzZvr73/+utm3bVmicW7VqldauXVvhfS1NNCv9M6Yw5/Ivf93287pU/pxIT09Xt27dNGbMmJjXduzYoSeeeEL169ev9J87/hq5ubm65ZZbtGzZsrJ0sDDjf9euXZWVlaVRo0Zp6dKlGjhwoKSdY+2MGTP03HPPqVWrVmW/hvq5H374QdWqVVPz5s131+4BwD6HXwoBqHI9evTQqFGjdOGFF6pnz546//zz1bBhQ/3444+699579dFHH2nUqFE69NBDK7X+1q1b68QTT9Sdd96p+Ph49evXT19++aXuvPNOZWdnq1q1qpnvPvLII3XXXXfppJNO0llnnaVVq1bpjjvu8P56Zm9p0aKFmjRpossvv1zOOdWoUUOvvfaa3nnnnXLvvf7663XkkUfq8MMP11//+leVlJTo9ttvV0ZGRsz/296jRw+dddZZOu200/Txxx+rV69eSk9P15IlS/T++++rbdu2OuecczR27Fjdd999Ovroo9W4cWM55zRmzBgVFRWV3YRb+vTpo4cfflhz5syp8JeOgQMH6vDDD9dll12mdevWqUePHpo5c6auueYadezYsVzsc926dfXb3/5W1157rerUqaMnnnhC77zzjm699dYK/arD5+KLL9bo0aN13XXX6fjjj9epp56qe++9V8OGDdO8efPUtm1bvf/++/rHP/6hwYMHx/x5Qn5+vtq0aaNx48apb9++ZdswYMAArV69WqtXr9Zdd93lbXfq1Knq3bt34C/psrKy1KtXL91+++3Ky8tTYWGhJk+erIceekg5OTmV2t+WLVvqlFNO0ahRo5SYmKgBAwZo1qxZuuOOO5SVlVWpdZa64YYb9Oyzz2rkyJEaP368LrzwQr344ovq1auXLrroIrVr1047duzQjz/+qHHjxmnEiBHq1q2bfvOb3+iPf/yjbrzxRi1btkxDhgxRcnKyZsyYobS0NF1wwQVq3ry5zjrrLN1zzz2qVq2aBg0apHnz5mnkyJFq0KCBLrrootDbe9RRR6lNmzbq0qWLatasqfnz52vUqFEqKCjQQQcdJEllE6Z33323hg0bpsTERDVv3lyZmZnmekuf3/Xwww+rSZMmat++vaZNm6annnqq3Hvvuusu9ezZU926ddPll1+upk2batmyZXr11VfL/iyvTZs2kqT7779fmZmZSklJUaNGjZSbm6t77rlHw4YN0+rVqzV06FDl5+drxYoV+vzzz7VixYqyibYbbrhBRxxxhAYOHKgRI0aopKREt956q9LT0yv9q7NfI8y5fdVVV+m1115T//79ddVVVyk1NVWjR4/Wxo0bJans+lBYWKjrr79eV111lX744QcdccQRql69upYtW6Zp06YpPT1d1113nWbOnKnzzz9fxx13nA466CAlJSVp4sSJmjlzZuCvIaWd45xzTh999FHZnyL/3I8//lj2p74bN27UlClTdPPNN6ugoEDHHnusJIU6l9u2basxY8bo3//+tzp37qxq1aqpS5cuyszMVEFBgV555RX1799fNWrUKDuON998swYOHKi+ffvq4osvVlJSku677z7NmjVLTz/9dIV+vbs7nHrqqbrrrrt0xx136Lzzzgs1/sfHx6t379567bXX1KhRIzVp0kTSzmtbcnKyJkyYoL/85S/edqdOnaoOHTqoevXqe2Q/AWCfsKefbA0gOqZMmeKGDh3qatWq5RISElx+fr479thjY6JiS/0yacr32s9t2bLF/e1vf3P5+fkuJSXFde/e3U2ZMsVlZ2fHJCVZ6WO/TMax2nn44Ydd8+bNXXJysmvcuLG7+eab3UMPPVQuYejXpo/9MrK7NJ3ml/Hppfvz/PPPl9Vmz57tBg4c6DIzM1316tXdcccd53788Udv2sxLL73k2rZt65KSklzDhg3dLbfc4v7yl7+46tWrl9vWhx9+2HXr1s2lp6e71NRU16RJE3fqqaeWJUZ9/fXX7sQTT3RNmjRxqampLjs723Xt2tU9+uijuzwOa9eudRkZGeWSZH7Od05s3rzZXXbZZa6goMAlJia6OnXquHPOOcetWbMmZtnSSPkXXnjBtW7d2iUlJbnCwsJyCTkWXyR9qXvvvTcmrnzVqlXu7LPPdnXq1HEJCQmuoKDAXXHFFWUpNz930UUXOUnupptuiqkfdNBBZqpcaXLZiy++uMvtXrhwofv973/vqlev7jIzM90RRxzhZs2a5QoKCmKSwkqThH6Z9OXrL1u3bnUjRowo19d+uU6L7/wudckllzhJbvLkyc455zZs2OD+/ve/u+bNm7ukpCSXnZ3t2rZt6y666CK3dOnSsuVKSkrcP//5T9emTZuy9x1yyCHutddei3nPrbfe6po1a+YSExNdXl6eO+WUU9yCBQtitsGKxB42bFhMktOdd97pDj30UJeXl1fWf04//XQ3b968mOWuuOIKV7duXVetWrWYYxl0Tq1du9adccYZrlatWi49Pd0dddRRbt68ed4+PHv2bHfccce53Nzcsu0YPnx4zPk2atQo16hRIxcfH18u2Wzy5MnuyCOPdDVq1HCJiYmuXr167sgjj4wZU5xz7tVXX3Xt2rWLGSt8Y6SPlT7m2/+Kjn8VPbedc+5///uf69atm0tOTna1a9d2l1xySVkiYFFRUcx7X375Zde3b1+XlZXlkpOTXUFBgRs6dKgbP368c865ZcuWueHDh7sWLVq49PR0l5GR4dq1a+f++c9/xqSE+ZSUlLjCwsJyyWG+9LGUlBTXrFkzd+GFF5al//18PRU5l1evXu2GDh3qcnJyXFxcXMxnNX78eNexY0eXnJxcLjnwf//7n+vXr1/ZWN+9e/eYvuScPWZY127rOvtLVv9zzrnXX3/dSXLXXXedc67i479zzt19991OkjvzzDNj6gMHDjST7davX+/S0tLKJW8CwIEuzrn/HwEEAPu5Dz/8UD169NCTTz6pk046aW9vzn6huLi4LBFo3Lhxe7TtCy64QBMmTNCXX35Z5f9vdGFhodq0aVPuT+P2RyNHjtRjjz2m77//PlTiF4CfHHbYYZo3b57mzJmzR9u98847ddNNN2nRokVKTU3do20jnIceekh//etftWDBAn4pBCBSmBQCsF965513NGXKFHXu3Fmpqan6/PPPdcsttyg7O1szZ84MnWwVFaeffroGDhyoOnXqaOnSpRo9erQmT56scePGeZNYdqdly5apWbNmeuihh8pFuv9aB8qkUFFRkRo3bqx77rmnXCw8AL+//e1v6tixoxo0aKDVq1frySef1JgxY/TQQw/pT3/60x7dli1btqhly5Y677zzdPHFF+/RtlFx27dvV6tWrTRs2LCyhFEAiAr+L0cA+6WsrCyNGzdOo0aN0vr165WXl6dBgwbp5ptvZkIowPr163XxxRdrxYoVSkxMVKdOnfTGG2/s8QkhaecDdp988kmtWbNmj7e9v5g7d66uuOIKfvkGhFBSUqKrr75aS5cuVVxcnFq1aqXHH39cp5xyyh7flpSUFD3++OOaMWPGHm8bFbdgwQKdcsopGjFixN7eFADY4/ilEAAAAAAAQAQRSQ8AAAAAABBBTAoBAAAAAABEEJNCAAAAAAAAEcSkEAAAAAAAQAQxKQQAAAAAABBBTAoBAAAAAABEEJNCAAAAAAAAEcSkEAAAAAAAQAQxKQQAAAAAABBBTAoBAAAAAABEEJNCAAAAAAAAEcSkEAAAAAAAQAQxKQQAAAAAABBBTAoBAAAAAABEUOQmhaZOnarjjjtOderUUVJSkmrXrq2hQ4dqypQpodZz7bXXKi4urlLb8O677youLk7vvvtupZavqD59+qhPnz67fN/777+vM844Q507d1ZycrLi4uI0b9683bptQGXQf2OVlJTorrvu0hFHHKH69esrLS1NLVu21OWXX66ioqLdun1AZdCHy/u///s/de/eXXl5eUpOTlbDhg11wgkn6Msvv9yt2weERf8N5pxTr169FBcXp/PPP3/3bBjwK9CHyxs+fLji4uLK/WvRosVu3b59TaQmhe655x716NFDCxcu1G233abx48frjjvu0KJFi9SzZ0/961//qvC6zjjjjNAdqFSnTp00ZcoUderUqVLLV7UJEyZo/PjxatiwoQ499NC9vTmAF/23vM2bN+vaa69VQUGBRo0apTfeeENnnnmm7r//fvXo0UObN2/e25sIlKEP+61atUqDBg3Sgw8+qHHjxum6667TjBkz1K1bN33zzTd7e/MASfTfirj33nv13Xff7e3NALzow7bU1FRNmTIl5t+zzz67tzdrz3IR8f7777tq1aq5IUOGuOLi4pjXiouL3ZAhQ1y1atXc+++/H7iejRs37s7NrFK9e/d2vXv33uX7SkpKyv737bff7iS5uXPn7r4NA0Ki//pt377drVy5slz9+eefd5Lc448/vpu2DgiHPhzO7NmznSQ3cuTIqt0ooBLov7s2d+5cl5GR4caMGeMkufPOO2/3bRwQEn3YNmzYMJeenr77N2gfF5lfCt18882Ki4vTv//9byUkJMS8lpCQoPvuu09xcXG65ZZbyuqlP4379NNPNXToUFWvXl1N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lOrVq6czzzxT+fn5Ov300yu1zi+//LLsSe+lzj33XElS79699e677/7azQZ+NfpvecuWLdP06dMlSX/961/LvT5s2DA9+uijv3azgSpBHy4vJSVF7du31/33368FCxZoy5Ytql27tvr06aMXX3xRrVq1qpLtBn4t+i+wf6MPl5eVlaVatWrprrvu0rJly1RSUqKCggL95S9/0ZVXXqn09PQq2e79QZwrfdQ4dosPP/xQPXr00JNPPqmTTjppb28OgBDov8D+jT4M7L/ov8D+jT68/2BSqAq98847mjJlijp37qzU1FR9/vnnuuWWW5Sdna2ZM2eWe6I6gH0H/RfYv9GHgf0X/RfYv9GH92+R+vOx3S0rK0vjxo3TqFGjtH79euXl5WnQoEG6+eab6QjAPo7+C+zf6MPA/ov+C+zf6MP7N34pBAAAAAAAEEGRiaQHAAAAAADAT5gUAgAAAAAAiCAmhQAAAAAAACKISSEAAAAAAIAIqnD6WFxc3O7cjkB16tTx1rt3724uk5WV5a3PmzfPW58yZYq3npuba7ZRVFRkvuZjbW96erq5zNixY731448/3ls/5JBDvPUrr7zSbOMf//iHt/7jjz96659++qm3PnnyZLONvYlnqe+0J/pw2Db4bPYtQZ/f3vysOE/27jUY+DXovzvRh7G/og/Tf30++OADb33p0qXeunUM69evb7ZRrZr/9ysNGzb01levXu2tt2jRwmzjQFfR/ssvhQAAAAAAACKISSEAAAAAAIAIYlIIAAAAAAAggpgUAgAAAAAAiCAmhQAAAAAAACIozlXwkdR74qnrbdq08dY7dOjgra9fv95c11dffeWtZ2ZmhlrX4sWLzTY2bNjgrV9yySXe+g033OCtJycnm228/PLL3vrIkSO99SZNmnjr1vGQpJYtW3rrYZ/4XrduXbONUaNGeetLliwxl6kqpCbsdKAkJxx++OHe+t/+9jdvvaCgwFxXdna2t75t2zZvvUaNGt76jh07zDZWrVrlrSck+MMfrbFowYIFZhvPPvust/7UU09561u3bjXXtS+iDx84/RfRQ//diT6M/RV9mP7rY50XVvpYcXGxtx50bEtKSrz1pKQkb91KLI/y50f6GAAAAAAAAExMCgEAAAAAAEQQk0IAAAAAAAARxKQQAAAAAABABDEpBAAAAAAAEEF7JX0sNTXVWz/ssMO89QkTJnjrOTk5ZhuFhYXe+ubNm731/Px8b33NmjVmG0VFRd76t99+661bT1CvDOvp6lYCmJUwJtmpRlYq2rvvvuutH3/88WYb/fv399bPOOMMb70qjxWpCTvti0/e/8c//mG+dsopp3jreXl53vr27du99Y0bN5ptWMfESt6zUsaC0sfi4+NDL+OTkZERug0ryey1117z1q3+uLfRh/fN/gtUBP13J/ow9lf04ej233bt2pmvffbZZ976559/7q1nZWV569b9u2QfdytF10oyP+qoo8w2xo4da752ICB9DAAAAAAAACYmhQAAAAAAACKISSEAAAAAAIAIYlIIAAAAAAAggpgUAgAAAAAAiCAmhQAAAAAAACIoYW802rlzZ2/9m2++8dbT0tK89dzcXLONsPHUc+fO9dat+DxJSkjwHz4rDs96fxArcs+KoLb2b968eWYbiYmJ3np6erq33qxZM2/9iy++MNvYtm2bt27Fjv/3v/8114X9z8knn+yt/+1vfzOXWbFihbe+bNkybz1svHxlVCaStLi42Fu3IiKt7V29erXZRth4+9NOO81bt+JFJelf//pXqDYAAACw/2rdunXoZazvqJVh3XeHbWPQoEHmawd6JH1F8UshAAAAAACACGJSCAAAAAAAIIKYFAIAAAAAAIggJoUAAAAAAAAiiEkhAAAAAACACNpt6WPt27c3X7NSw77//ntv3XrCeE5OjtmGlbaVnJzsrW/atCnU+4OUlJR461aSmJVOFMRKDLMSzoqKisx1NWjQwFvfsmWLt75+/XpvvUOHDmYb1mebkZHhrfft29dbnzRpktkG9l1nn322t75mzRpzGasfVSbFLywrGcxK+QpKJQubWFaZpAUrbdGqWwluf/jDH8w2SB8DAACIjry8PPM1617Zuo+17uuDUoKr6rtAixYtQr0/ivilEAAAAAAAQAQxKQQAAAAAABBBTAoBAAAAAABEEJNCAAAAAAAAEcSkEAAAAAAAQATtthgf62nhkrRq1SpvPTMzM9S66tata7ZhpetYSV9WG6mpqWYbVhKRlTJWmSQzi5VEZG2vtU2SfdytxLDGjRuHWo9kJ5ZZ6UhBxx37Hyvhzvr8peC0rb3FSlQIShgLm85gscabIFaigzUeBI2pAAAAiI569eqZr1nfqavy/r2qEs62bdtWZdt0oOKXQgAAAAAA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Xqh6vXr1vPU2bdqYbTz55JPeer9+/bz1JUuWeOtBx6Nz587ma5Bq167trVvnRtCYb6Vw5uXlhVpXenq62ca7777rrffp08db79+/v7f+ySefmG1YaURWstCVV17prdetW9ds49JLL/XWrbS82267zVsfMWKE2cYrr7zirX/55ZfeujUGB6X+WudJ2OTVrl27mq+9/vrrodaFA9/KlSvN16xz0krEs9IGg1jp4K1bt66SbcJP+KUQAAAAAABABDEpBAAAAAAAEEFMCgEAAAAAAEQQk0IAAAAAAAARxKQQAAAAAABABB2w6WNWCldRUZG3bqVmBD2t3Eo4s1Ie/vWvf3nrVsJY0HZZT2P/6quvvPWg9LHKJEYAVaEyaQANGjSosnXtTVbikbUfQQkjVjpUzZo1vfUVK1Z46/Hx8WYbVloK9k2V+bysa9fAgQO99TPOOMNcl5VetSeETcqrymS9PZHSt2jRIm999OjR5jLWZ2slywQlslms+y7s9PLLL4eqW2llkpSTk+OtN2zY0Ftv0aKFt75161azjQEDBnjrN910k7d+1VVXhVqPJL355pve+n333eetn3TSSd768OHDzTZGjRrlrQ8ePNhb//zzz731t99+22zjggsu8NZPOOEEb33p0qXeelC635o1a7z1ZcuWeevWdT5ojProo4+89fPPP99cBge2hQsXmq9Z94ybNm3y1gsKCkK3b6XrWtco6/wOur/FTvxSCAAAAAAAIIKYFAIAAAAAAIggJoUAAAAAAAAiiEkhAAAAAACACGJSCAAAAAAAIIL26/QxK/1LkpKTk7316dOne+tWAldubq7ZhpW00apVK2997NixodYjSVdccYW3/uGHH3rrc+bM8daTkpLMNiZMmOCtN2vWzFwGqAqVSeqpV69eqHUFpXbti6xEhaBUktTUVG/dGiOtVJLKJA5hz9gTqVa9e/f21nv27OmtP//88+a66tSp463vzVSyA0XTpk29datfS/Z9hpVSl5GR4a1b468kTZkyxXwNUl5enrduJdBaCVVBr3399dfe+rhx43axdeX95z//CfX+9PR0b91KzZKk7t27h2rDSl2zkoUl6cILLwzVhnW/nJaWZi5jHd/KHHdgXxLUtxITE711K+3SGiOCfP/996Heb90rWduEn/ANAAAAAAAAIIKYFAIAAAAAAIggJoUAAAAAAAAi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a5VJRQMAAMCBx0rete49K/Nd27pXtu75rXvVoKTv1atXh96uAxG/FAIAAAAAAIggJoUAAAAAAAAiiEkhAAAAAACACGJSCAAAAAAAIIKYFAIAAAAAAIggJoUAAAAAAAAiaL+OpP/+++/N16y4+tzcXG998eLF3vrKlSvNNmrVquWtN2zY0Fu3ovs2btxotrF9+3Zv3YrltuK3rfVI9rH68MMPvfVvvvnGW7di54MQPR8NQZHtYV188cXe+qBBg7z1vLw8c105OTneuhVVb/W7IGHPcSt+c+3ateYyH3/8sbd+9dVXh2qb2HkAAADsyq233uqtN2nSxFt/6aWXQrfx0Ucfeet//etfvfVNmzZ56/PmzQvddtTwSyEAAAAAAIAIYlIIAAAAAAAggpgUAgAAAAAAiCAmhQAAAAAAACKISSEAAAAAAIAIinPEzQAAAAAAAEQOvxQCAAAAAACIICaFAAAAAAAAIohJIQAAAAAAgAhiUggAAAAAACCCmBQCAAAAAACIICaFAAAAAAAAIohJIQAAAAAAgAhiUggAAAAAACCCmBQCAAAAAACIICaFAAAAAAAAIohJIQAAAAAAgAhiUggAAAAAACCCmBQCAAAAAACIICaFAAAAAAAAImivTgo9+uijiouLK/uXkJCgOnXq6IQTTtC33367Nzdtt7jvvvv06KOP7tVteOqppzRq1Kjdsu7CwkINHz58l+977LHHdMIJJ6h58+aqVq2aCgsLd8v2YPei/+55e7v/LlmyRH//+991yCGHKC8vT1lZWercubPuv/9+lZSU7Jbtwu5DH97z9nYflqQzzjhDbdq0UU5OjlJTU9WsWTNdcsklWrly5W7ZLuwe9N89b1/ovz+3bNky5ebmKi4uTi+88MJu2S7sPvThPW9f6MOFhYUxn3vpv7PPPnu3bFdFJezV1v+/Rx55RC1atNCWLVv0wQcf6KabbtKkSZP09ddfq3r16nt786rMfffdp7y8vNCDflV66qmnNGvWLF144YV7bRsef/xxLV26VF27dtWOHTtUXFy817YFvx79d8/Z2/33k08+0WOPPaZTTz1VI0eOVGJiot58802dc845mjp1qh5++OG9sl34dejDe87e7sOStHHjRp111llq2rSpUlJS9PHHH+umm27SG2+8oRkzZigpKWmvbRvCo//uOftC//258847TykpKXt7M/Ar0Yf3nH2lD/fo0UN33HFHTK1WrVp7aWt22icmhdq0aaMuXbpIkvr06aOSkhJdc801evnll3Xaaaft5a3bO4qLi8tmjQ80b7/9tqpV2/kjtSFDhmjWrFl7eYvwa9B/yztQ+2+PHj30/fffKzExsaw2cOBAbdu2Tffee6+uu+46NWjQYC9uISqDPlzegdqHJenpp5+O+e9+/fopMzNT5557rt5//33169dvL20ZKoP+W96B3H9Lvfjii3r77bd17733atiwYXt7c/Ar0IfLO9D7cE5Ojrp37763NyPGPvlModKOsWzZspj6xx9/rN/+9reqUaOGUlJS1LFjRz333HPlll+0aJHOOussNWjQQElJSapbt66GDh0as74ff/xRp5xyivLz85WcnKyWLVvqzjvv1I4dO8reM2/ePMXFxemOO+7QXXfdpUaNGikjI0OHHHKIpk6dGtPmDz/8oBNOOEF169ZVcnKyatWqpf79++uzzz6TtPOnYl9++aUmT55c9jOx0j+bevfddxUXF6fHH39cI0aMUL169ZScnKzvvvtO1157reLi4srtY+lPDufNmxdTf+qpp3TIIYcoIyNDGRkZ6tChgx566CFJOwea119/XfPnz4/5uVqpbdu26cYbb1SLFi2UnJysmjVr6rTTTtOKFSti2iguLtall16q2rVrKy0tTT179tS0adN8H6VX6YQQDkz03wO3/1avXj1mQqhU165dJUkLFy6s0Hqwb6MPH7h92FKzZk1JOmBvwKOE/nvg99/Vq1frvPPO00033aSGDRuGWhb7Pvrwgd+H90X75NV/7ty5kqRmzZqV1SZNmqQjjjhC3bp10+jRo5Wdna1nnnlGf/jDH7Rp06ayn6ItWrRIBx98sIqLi3XllVeqXbt2WrVqld5++22tWbNGtWrV0ooVK3TooYdq27ZtuuGGG1RYWKixY8fq4osv1vfff6/77rsvZnvuvfdetWjRouxvEEeOHKnBgwdr7ty5ys7OliQNHjxYJSUluu2229SwYUOtXLlSH374oYqKiiRJL730koYOHars7Oyy9ScnJ8e0c8UVV+iQQw7R6NGjVa1aNeXn54c6bldffbVuuOEGHXvssRoxYoSys7M1a9YszZ8/X9LOn+2dddZZ+v777/XSSy/FLLtjxw797ne/0//+9z9deumlOvTQQzV//nxdc8016tOnjz7++GOlpqZKks4880w99thjuvjiizVw4EDNmjVLxx57rNavXx9qe3Fgov9Gr/9OnDhRCQkJMZ859l/04Wj04e3bt2vr1q367LPPNHLkSPXs2VM9evQItQ7se+i/B37//ctf/qJGjRrp/PPP13vvvRdqP7Hvow8f+H34vffeU2ZmprZs2aKDDjpIp59+ui688ELFx8eH2ucq5faiRx55xElyU6dOdcXFxW79+vXurbfecrVr13a9evVyxcXFZe9t0aKF69ixY0zNOeeGDBni6tSp40pKSpxzzv3pT39yiYmJbvbs2Wa7l19+uZPkPvroo5j6Oeec4+Li4tw333zjnHNu7ty5TpJr27at2759e9n7pk2b5iS5p59+2jnn3MqVK50kN2rUqMD9bd26tevdu3e5+qRJk5wk16tXr3KvXXPNNc73MZUeu7lz5zrnnPvhhx9cfHy8O/nkkwO34cgjj3QFBQXl6k8//bST5F588cWY+vTp050kd9999znnnPvqq6+cJHfRRRfFvO/JJ590ktywYcMC26/o9mDfR//dKcr91znn3n77bVetWrVy68S+jz68UxT78JQpU5yksn+DBw9269atq9Cy2DfQf3eKWv8dO3asS0xMdF988YVz7qf9f/7553e5LPYt9OGdotaHzz33XPfwww+7yZMnu5dfftmdfPLJTpI75ZRTdrns7rRP/B1P9+7dlZiYqMzMTB1xxBGqXr26XnnllbKfMX/33Xf6+uuvdfLJJ0va+f9ulf4bPHiwlixZom+++UaS9Oabb6pv375q2bKl2d7EiRPVqlWrsj95KDV8+HA55zRx4sSY+pFHHhkzc9euXTtJKpt5rFGjhpo0aaLbb79dd911l2bMmBHz87uK+v3vfx96mVLvvPOOSkpKdN5551Vq+bFjxyonJ0dHHXVUzPHt0KGDateurXfffVfSzplqSWWfRanjjz+en51HFP13pyj2308//VTHH3+8unfvrptvvrlS2469jz68U5T6cNu2bTV9+nRNnjxZd999t2bMmKGBAwdq06ZNldp+7D30352i0H/Xrl2rP//5z7rsssvUpk2bSm0r9j304Z2i0Ielnb+8Ou2009SrVy/97ne/0xNPPKHzzz9fTzzxhGbMmFGp7a8K+8Sk0GOPPabp06dr4sSJ+vOf/6yvvvpKJ554YtnrpX8DefHFFysx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",
      "text/plain": [
       "<Figure size 1500x500 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "images, _ = next(iter(train_loader_Fashion))\n",
    "model_FashionNew.eval()\n",
    "visualize_reconstruction(model_FashionNew.cpu(), images, rows=5)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
